数据类型所佔用内存大小
(2007-06-19 16:55:08)
一般根据不同的操作系统,其数据类型的表示也不尽相同.如果在机器字长位16的机器上编译,可能int只有2个byte,在字长32的机器上,intj就有4个byte.
C++标准确实没有保证各种类型的大小。包括char的大小也没有保证。不过,无论char的大小是多少,sizeof(char)恒为1,就是说肯定是以char的大小为基准的。
下面的代码,大家分析一下,看其操作系统是如何为各个类型分配内存大小的:
#include
#include
int
main(int
argc,
char*
argv[])
{
printf
("sizeof(char):
%d\n",
sizeof(char));
printf
("sizeof(short):
%d\n",
sizeof(short));
printf
("sizeof(int):
%d\n",
sizeof(int));
printf
("sizeof(long):
%d\n",
sizeof(long));
printf
("sizeof(float):
%d\n",
sizeof(float));
printf
("sizeof(double):
%d\n",
sizeof(double));
printf
("sizeof(long
double):
%d\n",
sizeof(long
double));
return
0;
}
=======================
执行的結果如下:
=======================
sizeof(char):
1
sizeof(short):
2
sizeof(int):
4
sizeof(long):
4
sizeof(float):
4
sizeof(double):
8
sizeof(long
double):
12