从ISO C标准开始:第9.5节,第4段,第1行:
"A union for which objects or pointers are declared is not
an anonymous union."
示例:
struct X {
union {
int i;
double d;
} ;
int f () { return i;}
};
int main() { return 0; }
根据上述观点,IAm期望该示例出现错误
但是GCC,SUN编译器CC,EDG等都没有显示错误
我期待这个错误//错误:无法直接访问“i”
请..conform上面的示例程序是正确的是错误的
解决方法:
这会使联盟不是匿名的:
struct X {
union {
int i;
double d;
} *p;
int f () { return i;} // !Nyet.
};
干杯&心连心,