LoadRunner中sizeoft函数解说
上一篇 /
下一篇 2011-10-27 14:10:33
/ 个人分类:LoadRunner
sizeof是返回一个对象或者类型所占的内存字节数。
sizeof有三种语法形式,如下:
1) sizeof( object ); // sizeof( 对象 );
2) sizeof( type_name ); // sizeof( 类型 );
sizeof可以对一个表达式求值。编译器根据表达式的最终结果类型来确定大小,一般不会对表达式进行计算。
例如:
sizeof
( 2 );
定义变量
struct T{ char ch; int i ;};使用sizeof(T),将得到什么样的答案呢?要是以前,想都不用想,在32位机中,int是4个字节,char是1个字节,所以T一共是5个字节
但最最终结果确实8
sizeof的常量性 :sizeof(char [50]);结果就是50
基本数据类型的sizeof :short、int、long、float、double这样的简单内置数据类型
指针变量的sizeof :
char* pc = "abc";
int* pi;
string* ps;
char** ppc = &pc;
void (*pf)(); // 函数指针
sizeof( pc ); // 结果为4
sizeof( pi ); // 结果为4
sizeof( ps ); // 结果为4
sizeof( ppc );// 结果为4
sizeof( pf ); // 结果为4
数组:char
a1[] =
"abc"
;
sizeof
( a1 );
sizeof
( a2 );
解说:
对齐模数的准则是:对齐模数最大只能是4,也就是说,即使结构体中有double类型,对齐模数还是4,所以对齐模数只能是1,2,4。
struct T
{
char ch;
double d ;
};
结果 等于12
int=1,short=2,char=4,double=8,char[4]=4,char a []="abc"结果=4
OK{char,short,int,double}对象结果是16;OK{char,short,short,int,double}结果是20因为char,short相加等于3在加+1,第二个short要对齐则是3+1<对齐符> +int<4>+double<8>=16
如果只有char和short则以short为单位符2,
总结:同一个类型如果<4则添加符
不同类型添加符方式从小到大char < short<int<double
如果有char也有short则以2为一个单元
有char,short,int则以4为一个单元
有short,int则以4为一个单元
想加之后一定要是4的倍数
收藏
举报
TAG: