c++ sizeof()
1. 不使用sizeof()计算机器位数;
int* a[2];
int size = (char*)&a[1] - (char*)&a[0];
2. 32位指针4字节,64位指针8字节;
编译器G++, 机器64位,经测试类中的数据会向最大的字节数看齐;例如:
1. class A{ char a; char b; double c ;}(向double对齐,8字节)
结果:sizeof(A) = 16;
class A{ char a; char b; int c ;} (向int对齐,4字节)
结果:sizeof(A) = 8;
class A{ char a; virtual fun(); int c ;}(向虚指针对齐,8字节)
结果:sizeof(A) = 16;

浙公网安备 33010602011771号