嗯...我有点认为像long / short这样的修饰符在创建变量时会扩展/减少分配的内存量,但是...
#include <stdio.h>
#define test_int int
#define long_int long int
#define long_long_int long long int
void main()
{
printf("%i\n", sizeof (test_int)); //output 4
printf("%i\n", sizeof (long_int)); //output 4. Why? wasn't I modified it's size?
printf("%i\n", sizeof (long_long_int)); //output 8
}
由于未知原因,它将int和long int的大小打印为相同。 我使用vc++ 2010 express版。 很抱歉,在谷歌上难以找到答案,它总是将long和int作为单独的类型显示。
short
至少为16位,long int
至少为32位,long long int
至少为64位。其他所有类型都未指定大小。例如,一个平台完全可以将每种类型的长度设为256位,因此每种类型的sizeof
都将为1。 - Kerrek SB