Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengumpul Struktur/Kesatuan Tanpa Nama dalam C dengan GCC?
Menyusun Kod C dengan Struktur/Kesatuan Tanpa Nama
Struktur dan kesatuan tanpa nama membenarkan struktur data yang fleksibel tanpa perlu mengisytiharkan struktur/kesatuan yang berasingan taip. Dalam C , struct/kesatuan tanpa nama boleh dibuat menggunakan struct dan kesatuan bersarang; namun, C tidak memberikan sokongan langsung untuk fungsi ini.
Untuk mencapai kefungsian serupa dalam C dengan GCC, anda boleh menggunakan bendera -fms-extensions. Bendera ini mendayakan sambungan gaya Microsoft, termasuk sokongan untuk struct/kesatuan tanpa nama.
Sebagai contoh, pertimbangkan kod berikut:
<code class="c">typedef struct { union { struct { float x, y, z; }; float xyz[3]; }; } Vector3;</code>
Dengan penambahan -fms- sambungan bendera, kod berjaya dikompil dengan arahan berikut:
gcc -fms-extensions -c <source_file>.c
Pelanjutan ini membolehkan anda mengakses ahli struct tanpa nama melalui ahli tatasusunan, seperti dalam kod berikut:
<code class="c">Vector3 v; assert(&v.xyz[0] == &v.x); assert(&v.xyz[1] == &v.y); assert(&v.xyz[2] == &v.z);</code>
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengumpul Struktur/Kesatuan Tanpa Nama dalam C dengan GCC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!