为什么C语言和C++语言中字符字面量的大小不同?
为什么C语言和C++语言中字符字面量的大小不同?
我知道在C和C++中,每个字面值都有特定的类型信息。
我用C语言编写了这个小程序,并在Visual Studio 2012中编译。
源文件名为“main.c”。
#includeint main() { printf("sizeof(char) = %d\n", sizeof(char)); printf("sizeof('i') = %d", sizeof('i')); getchar(); return 0; }
输出结果为:
sizeof(char) = 1 sizeof('i') = 4
我惊讶地发现字符的大小不是1个字节。我将源文件改名为“main.cpp”,现在sizeof('a')返回了预期的1。所以肯定存在语言上的差异。为什么C语言中char的大小是4字节而不是1字节?