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

Adakah Ahli Array Fleksibel Sah dalam C ?

Patricia Arquette
Lepaskan: 2024-12-06 09:13:09
asal
531 orang telah melayarinya

Are Flexible Array Members Valid in C  ?

Ahli Tatasusunan Fleksibel dalam C

Dalam C99, ahli tatasusunan fleksibel boleh digunakan untuk mengisytiharkan tatasusunan saiz yang tidak diketahui sebagai sebahagian daripada struktur. Walau bagaimanapun, kesahihan ciri ini dalam C telah menjadi subjek kekeliruan.

Kesahihan dalam C

C telah diseragamkan pada tahun 1998, mendahului pengenalan ahli tatasusunan fleksibel dalam C99. Akibatnya, ahli tatasusunan fleksibel tidak disokong dalam C .

Pengisytiharan Betul

Walaupun terdapat salah tanggapan, '[0]' ialah pengisytiharan yang sah untuk ahli tatasusunan fleksibel dalam C . Sintaks ini menunjukkan bahawa saiz tatasusunan tidak ditentukan dan mesti ditetapkan oleh pengguna pada masa jalan.

Contoh

Dalam C , kod berikut akan disusun dan laksana tanpa ralat:

struct Blah {
    int foo[0];
};
Salin selepas log masuk

Sebaliknya, sintaks '[]' tanpa saiz adalah tidak sah dalam C . Percubaan untuk mengisytiharkan ahli tatasusunan fleksibel menggunakan sintaks ini akan mengakibatkan ralat pengkompil.

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

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan