Rumah >pembangunan bahagian belakang >C++ >Adakah Ahli Array Fleksibel Sah dalam 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]; };
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!