Rumah >pembangunan bahagian belakang >C++ >Adakah Ahli Array Fleksibel Dibenarkan dalam C ?

Adakah Ahli Array Fleksibel Dibenarkan dalam C ?

Barbara Streisand
Barbara Streisandasal
2024-12-13 20:51:17747semak imbas

Are Flexible Array Members Allowed in C  ?

Adakah Ahli Tatasusunan Fleksibel Sah dalam C ?

Dalam C99, tatasusunan ahli fleksibel boleh diisytiharkan dalam struct, membolehkan saiz tatasusunan menjadi tidak dinyatakan. Walau bagaimanapun, sintaks yang sama tidak boleh digunakan dalam C . Apabila cuba dentang, ia gagal untuk menyusun, memerlukan pengubahsuaian pada pengisytiharan untuk memasukkan [0].

Kesahihan dalam C

Mengikut piawaian C, terdapat bukan rujukan eksplisit kepada tatasusunan ahli yang fleksibel. Ini menunjukkan bahawa mereka tidak sah dalam C .

Pengisytiharan Betul

Walaupun [0] secara tradisinya dianggap sebagai pengisytiharan tidak sah untuk tatasusunan, ia nampaknya pengisytiharan yang sah untuk tatasusunan ahli yang fleksibel. Sisihan daripada tingkah laku tatasusunan piawai ini adalah unik kepada tatasusunan ahli fleksibel dalam C .

Kesimpulan

Tatasusunan ahli fleksibel, walaupun tersedia dalam C99, tidak sah dalam C . Pengecualian ciri ini dalam C berpunca daripada fakta bahawa C telah diseragamkan sebelum pengenalannya dalam C.

Atas ialah kandungan terperinci Adakah Ahli Array Fleksibel Dibenarkan dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn