C语言类型占内存大小
C语言数据类型
sizeof测试基本数据类型所占字符大小
c
#include <stdio.h>
int main()
{
char a;
short b;
int c;
long d;
float e;
double f;
printf("char = %d\n", sizeof (a));
printf("short = %d\n", sizeof (b));
printf("int = %d\n", sizeof (c));
printf("long = %d\n", sizeof (d));
printf("float = %d\n", sizeof (e));
printf("double= %d\n", sizeof (f));
return 0;
}
运行结果
c
char = 1
short = 2
int = 4
long = 4
float = 4
double= 8
数据模型
32位环境涉及"ILP32"数据模型,是因为C数据类型为32位的int、long、指针。而64位环境使用不同的数据模型,此时的long和指针已为64位,故称作"LP64"数据模型。
现今所有64位的类Unix平台均使用LP64数据模型,而64位Windows使用LLP64数据模型,除了指针是64位,其他基本类型都没有变
LP64意思是long和pointer是64位,
ILP64指int,long,pointer是64位,
LLP64指long long和pointer是64-bit的。
ILP32指int,long和pointer是32位的,
LP32指long和pointer是32位的。