数据类型所占字节
(2013-01-04 22:59:42)
标签:
it |
分类: interview |
总的说来,可以分为基本数据类型和结构体。
数据类型最简单的测试方法就是通过sizeof函数打印出来。
基本数据类型所占字节数如下
类型
字节
char
1
short int
2
int
2(16bit)/4(32bit)/4(64bit)
long
4(16bit)/4(32bit)/8(64bit)
指针变量
4
float
4
double
8
long long
8
long double
10
各种数据类型所占字节长度,主要是int型,long型和指针数据类型的差异。
int型数据,如果是16bit平台,则是2个字节,如果是32bit的,则占4个字节,64bit仍然是4字节。
long型数据,如果是16bit平台,则是4个字节,如果是32bit的,则占4个字节,64bit仍然是8字节。
指针型数据,比较特殊,大多是4个字节,只有在16bit平台,并且指针式段内寻址时才是2个字节。
结构体
struct的大小为各成员大小的总和,但是也要注意根据平台来填补漏洞;
union为所有成员中最大的;
关于位域的结构体,因为跟编译器使用的对齐方式有关。
关于字节对齐的内容,可以参见我另一篇blog“字节对齐”。
另外,有一点需要注意:
sizeof(表达式)这样的使用,sizeof是给出其操作数所需要占用的内存大小,在编译时就可以确定。因此不需要去计算表达式的值;
因此有
int i = 3;
sizeof(++i +
++i)后,i的值仍然为3,原因如上。
前一篇:Linux装载和卸载模块
后一篇:const