|
5啊哈币
#include <stdio.h>
main()
{
int s,t,A=10;
double B=6;
s=sizeof(A);
t=sizeof(B);
printf("%d,%d\n",s,t);
}
在tc上是2,8 在VC上是4,8
请问这是为什么
|
最佳答案
查看完整内容
应该是这样的:
C语言中有些数据类型所占用的内存空间大小是由编译器根据操作系统的位数和自身的位数综合考虑决定的,TC是16位的程序,它认为字长就是16位(2字节),于是一个int就是2字节,而VC是32位程序所以int是32位(4字节)
有趣的是64位系统(和编译器)上的int也往往是4字节的,这可能是为了兼容性或者统一性考虑
总的来说这东西C标准里没有给出明确的规定,因此实现成什么样都是编译器的事,一般来说做一些小的程序的 ...
|