【发布时间】:2012-11-12 11:49:10
【问题描述】:
#include <stdio.h>
int main () {
double num = 5.2;
int var = 5;
printf("%d\t", sizeof(!num));
printf("%d\t", sizeof(var = 15/2));
printf("%d", var);
return 0;
}
在 VS 2010 和 GCC 4.7.0 上运行此程序,输出为 1 4 5,使用 Turbo 3.0/4.5 时,结果为 2 4 5。
我们从哪里可以获得数据类型的确切大小?
【问题讨论】:
-
标准规定 sizeof(char) 为一。除此之外,它只指定类型大小之间的关系,因此它们在不同的平台和工具链上会有所不同。
-
VS2010/gcc中%d是怎么变成char的???
-
char和%d对于您提出的问题都不是很重要。我只是在谈论标准中的内容。请参阅 Oak 的回答。
标签: compiler-construction primitive-types