小编use*_*817的帖子

空结构和匿名联合奇怪的情况

编译我的代码为C++ 11 gcc 4.8.2llvm/clang 3.4在Fedora Linux的,我得到了奇怪的结果,我真的无法解释...这里是一个类似的计划的Fedora.

#include <iostream>
using namespace std;

struct A {};
struct C {};
struct B1 : A { union { A a;}; };
struct B2 : A { union { C c;}; };

int main()
{
    cout << sizeof(B1) << " " << sizeof(B2) << endl;
}
Run Code Online (Sandbox Code Playgroud)

sizeof(B1) = 2sizeof(B2) = 1

但为什么尺寸不同?实际上我有一个"为什么"的想法,但我想找到确切的解释或C++规则.

c++ struct sizeof unions

14
推荐指数
1
解决办法
784
查看次数

标签 统计

c++ ×1

sizeof ×1

struct ×1

unions ×1