在成员初始化程序中使用sizeof的行为是什么?

时间:2014-03-27 23:52:05

标签: c++ c++11 sizeof

成员初始化程序中使用sizeof的行为是什么?我无法找到关于这一点的描述。在下面的代码示例中它是否安全?即,在struct成员之后,编译器会在A中放置b的正确大小?

struct A
{
    int a = 0;
    int b = sizeof(A);
    int c = 3;
    int d = 4;
    char s[256];

    A()
    {
        //printf("b = %d\n", b);
    }
};

1 个答案:

答案 0 :(得分:4)

struct的大小在编译中比struct内的值设置更早确定。