typedef union { unsigned x; } T;
T a;
a.x = 3;
int main() { return 0; }
尝试编译此代码,gcc t.c
我得到
error: expected '=', ',', ';', 'asm' or '__attribute__' before '.' token
使用
gcc --version
gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
当我搬进a.x = 3;
去时main
,它的行为符合预期。
我希望找到从
ISO/IEC 9899:TC3
其中解释了禁止将值分配给全局命名空间中的联合。
编辑:与结构它发生相同。