Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengumpul Kod C dengan Struktur atau Kesatuan Tanpa Nama?
Menyusun Kod C dengan Struktur/Kesatuan Tanpa Nama
Timbul persoalan mengenai cara menyusun kod C dengan struct atau kesatuan tanpa nama, seperti yang ditunjukkan dalam C dengan medan tanpa nama menggunakan kesatuan. Dalam C, percubaan untuk mencipta struktur serupa menggunakan struct bernama yang mengandungi kesatuan tanpa nama mengakibatkan ralat penyusunan.
Mesej ralat menunjukkan bahawa kesatuan tanpa nama dan medan struct tidak diisytiharkan dalam pengisytiharan struct. Untuk mendayakan ciri ini dalam C, anda perlu menggunakan bendera pengkompil -fms-extensions.
Kod Disemak dengan -fms-extensions
<code class="c">#include <stdio.h> #include <assert.h> typedef struct { union { float x, y, z; } xyz; } Vector3; int main() { Vector3 v; assert(&v.xyz.x == &v.x); assert(&v.xyz.y == &v.y); assert(&v.xyz.z == &v.z); return 0; }</code>
Dengan ini pengubahsuaian, kod akan berjaya disusun dan penegasan akan lulus, mengesahkan bahawa alamat ahli kesatuan dan medan struct adalah setara.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengumpul Kod C dengan Struktur atau Kesatuan Tanpa Nama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!