欢迎来到天天文库
浏览记录
ID:15761817
大小:43.50 KB
页数:11页
时间:2018-08-05
《sizeof 及 结构体联合体大小计算方法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、SIZEOF及结构体联合体大小计算方法2010-09-0616:30Cpp代码//Exampleofthesizeofkeywordsize_ti=sizeof(int);structalign_depends{charc;inti;};size_tsize=sizeof(align_depends);//Thevalueofsizedependson//thevaluesetwith/Zpor//#pragmapackintarray[]={1,2,3,4,5};//sizeof(array)is20//sizeof(array[0])is4size_tsizearr=//C
2、ountofitemsinarraysizeof(array)/sizeof(array[0]);//Exampleofthesizeofkeywordsize_ti=sizeof(int);structalign_depends{charc;inti;};size_tsize=sizeof(align_depends);//Thevalueofsizedependson//thevaluesetwith/Zpor//#pragmapackintarray[]={1,2,3,4,5};//sizeof(array)is20//sizeof(array[0])is4size_ts
3、izearr=//Countofitemsinarraysizeof(array)/sizeof(array[0]);1.用法1.1sizeof和new、delete等一样,是关键字,不是函数或者宏。1.2sizeof返回内存中分配的字节数,它和操作系统的位数有关。例如在常见的32位系统中,int类型占4个字节;但是在16位系统中,int类型占2个字节。1.3sizeof的参数可以是类型,也可以是变量,还可以是常量。对于相同类型,以上3中形式参数的size
4、of返回值相同。Cpp代码inta;sizeof(a);//=4sizeof(int);//=4sizeof(1);//=4inta;sizeof(a);//=4sizeof(int);//=4sizeof(1);//=41.4C99标准规定,函数、不能确定类型的表达式以及位域(bit-field)成员不能被计算sizeof值,即下面这些写法都是错误的。Cpp代码voidfn(){}sizeof(fn);//error:函数sizeof(fn());//error:不能确定类型structS{inta:3;};Ssa;sizeof(sa.a);//error:位域成员voidf
5、n(){}sizeof(fn);//error:函数sizeof(fn());//error:不能确定类型structS{inta:3;};Ssa;sizeof(sa.a);//error:位域成员1.5sizeof在编译阶段处理。由于sizeof不能被编译成机器码,所以sizeof的参数不能被编译,而是被替换成类型。Cpp代码inta=-1;sizeof(a=3);//=sizeof(a)=sizeof(int)=4cout<6、sizeof(int)=4cout<7、rt);//=2sizeof(float);//=4sizeof(long);//=42.2指针指针在32位系统中占4个字节。Cpp代码sizeof(int*);//=4sizeof(double*);//=4sizeof(char*);//=4sizeof(int*);//=4sizeof(double*);//=4sizeof(char*);//=42.3数组2.3.1数组的sizeof返回整个数组所占的字节数,即(数组元素个数×每个元素所占字节)。Cpp代码intai[]={1,2};
6、sizeof(int)=4cout<7、rt);//=2sizeof(float);//=4sizeof(long);//=42.2指针指针在32位系统中占4个字节。Cpp代码sizeof(int*);//=4sizeof(double*);//=4sizeof(char*);//=4sizeof(int*);//=4sizeof(double*);//=4sizeof(char*);//=42.3数组2.3.1数组的sizeof返回整个数组所占的字节数,即(数组元素个数×每个元素所占字节)。Cpp代码intai[]={1,2};
7、rt);//=2sizeof(float);//=4sizeof(long);//=42.2指针指针在32位系统中占4个字节。Cpp代码sizeof(int*);//=4sizeof(double*);//=4sizeof(char*);//=4sizeof(int*);//=4sizeof(double*);//=4sizeof(char*);//=42.3数组2.3.1数组的sizeof返回整个数组所占的字节数,即(数组元素个数×每个元素所占字节)。Cpp代码intai[]={1,2};
此文档下载收益归作者所有