在“C 的完整引用”一书中提到 char
默认是无符号的。
但我正在尝试使用 GCC 和 Visual Studio 来验证这一点。它默认将其视为已签名。
哪个是正确的?
最佳答案
这本书错了。该标准未指定是否为普通 char
有符号或无符号。
事实上,该标准定义了三种不同的类型:char
, signed char
, 和 unsigned char
.如果你#include <limits.h>
然后看CHAR_MIN
,你可以找出是否普通 char
是signed
或 unsigned
(如果 CHAR_MIN
小于 0 或等于 0),但即便如此,就标准而言,三种类型是不同的。
请注意 char
在这方面很特别。如果您将变量声明为 int
它 100% 等同于将其声明为 signed int
.这对所有编译器和架构都是正确的。
关于c - 默认情况下,char 是有符号的还是无符号的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27175429/