c – ISO文档中的一点:基于匿名联盟
发布时间:2020-12-16 09:35:35 所属栏目:百科 来源:网络整理
导读:从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期望该
从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. }; 干杯&心连心, (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |