使用匿名結構/聯合編譯C 程式碼
匿名結構和聯合允許靈活的資料結構,而無需聲明單獨的結構/聯合類型。在 C 中,可以使用嵌套結構和聯合來創建匿名結構/聯合;然而,C 並不提供對此功能的直接支援。
要使用 GCC 在 C 中實現類似的功能,您可以使用 -fms-extensions 標誌。此標誌啟用 Microsoft 風格的擴展,包括對匿名結構/聯合的支援。
例如,考慮以下程式碼:
<code class="c">typedef struct { union { struct { float x, y, z; }; float xyz[3]; }; } Vector3;</code>
新增-fms-擴充標誌,程式碼使用以下指令編譯成功:
gcc -fms-extensions -c <source_file>.c
此擴充功能可讓您透過陣列成員存取匿名結構體成員,如下列程式碼所示:
<code class="c">Vector3 v; assert(&v.xyz[0] == &v.x); assert(&v.xyz[1] == &v.y); assert(&v.xyz[2] == &v.z);</code>
以上是如何使用 GCC 在 C 中編譯匿名結構/聯合?的詳細內容。更多資訊請關注PHP中文網其他相關文章!