相关疑难解决方法(0)

为什么char的符号没有在C中定义?

C标准规定:

ISO/IEC 9899:1999,6.2.5.15(第49页)

char,signed char和unsigned char这三种类型统称为字符类型.实现应将char定义为具有与signed char或unsigned char相同的范围,表示和行为.

确实gcc根据目标平台定义.

我的问题是,为什么标准会这样做?除了可怕的和难以发现的错误之外,我看不出任何可能来自模糊类型定义的内容.

更重要的是,在ANSI C(C99之前)中,唯一的字节大小类型是char,因此使用char进行数学运算有时是不可避免的.所以说"一个人永远不应该使用char来表示数学"并非如此.如果是这样的话,一个理智的决定是包括三种类型" ,".charubytesbyte

有没有理由,或者它只是一些奇怪的向后兼容性问题,以便将坏(但常见)编译器定义为标准兼容?

c standards unsigned gcc char

20
推荐指数
3
解决办法
2131
查看次数

标签 统计

c ×1

char ×1

gcc ×1

standards ×1

unsigned ×1