一道关于pack()和sizeof笔试题
原题:
在32位机器上,下列代码中
- #pragma pack(2)
- class A
- {
- int i;
- union U
- {
- char buff[13];
- int i;
- }u;
- void foo() { }
- typedef char* (*f)(void*);
- enum{red, green, blue} color;
- }a;
sizeof(a)的值是()
A、20 B、21 C、22 D、24 E、非以上选项
解析:
class A{ int i; //4 union u{ char buff[13]; int i; }U; //13 //1 对齐 void foo(){} //仅声明,不占空间 typedef char* (*f)(void);//仅声明,不占空间 enum{red,green,blue} color; //4} a;
浙公网安备 33010602011771号