zoukankan      html  css  js  c++  java
  • 一道关于pack()和sizeof笔试题

    原题:
    在32位机器上,下列代码中
    1. #pragma pack(2)  
    2. class A  
    3. {  
    4.     int i;  
    5.     union U  
    6.     {  
    7.         char buff[13];  
    8.         int i;  
    9.     }u;  
    10.     void foo() {    }  
    11.     typedef char* (*f)(void*);  
    12.     enum{red, green, blue} color;  
    13. }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;
  • 相关阅读:
    CSU 1122
    CSU 1256
    CSU 1240
    HDU 1874
    CSU 1004
    Problem F CodeForces 16E
    Problem E CodeForces 237C
    Problem C FZU 1901
    12-30
    2016-12-29
  • 原文地址:https://www.cnblogs.com/mapleyuan/p/3056433.html
Copyright © 2011-2022 走看看