使用匿名结构和联合编译 C 代码
要使用匿名结构和联合编译 C 代码,请考虑使用启用 GNU C 的未命名字段扩展通过 -fms-extensions 编译器标志。
实现:
<code class="c">typedef struct { union { struct { float x, y, z; }; float xyz[3]; }; } Vector3;</code>
编译:
<code class="sh">gcc -fms-extensions my_code.c</code>
用法:
<code class="c">Vector3 v; assert(&v.xyz[0] == &v.x); assert(&v.xyz[1] == &v.y); assert(&v.xyz[2] == &v.z);</code>
说明:
-fms-extensions 标志允许在结构和联合中使用未命名字段,从而允许匿名结构按照原始问题中的概述使用。通过使用此标志,编译器将识别联合中的匿名结构,并将该结构的元素与数组 xyz 的元素正确关联。
以上是如何使用匿名结构和联合编译 C 代码?的详细内容。更多信息请关注PHP中文网其他相关文章!