Rumah > Artikel > pembangunan bahagian belakang > Mengapakah GCC membenarkan tatasusunan bersaiz berubah-ubah dalam C ?
Tasusunan Bersaiz Boleh Ubah dalam C : Menyusun dengan Pelanjutan GCC
C biasanya memerlukan saiz tatasusunan menjadi integer tetap. Walau bagaimanapun, GCC menyediakan sambungan yang membenarkan penggunaan pembolehubah bukan pemalar untuk mengisytiharkan saiz tatasusunan.
Soalan:
Mengapa kod berikut berjaya disusun dengan GCC ?
<code class="cpp">void f(int i) { int v1[i]; } int main() { int i = 3; int v2[i]; f(5); }</code>
Jawapan:
Tingkah laku ini adalah lanjutan kepada standard C yang diperkenalkan oleh GCC. Secara lalai, GCC membenarkan anda menggunakan pembolehubah bukan pemalar untuk menentukan saiz tatasusunan.
Walau bagaimanapun, terdapat kaveat penting untuk diambil perhatian:
Menggunakan Sambungan:
Untuk menggunakan sambungan ini, hanya isytiharkan tatasusunan anda dengan pembolehubah bukan pemalar sebagai saiznya:
<code class="cpp">int arraySize = 5; int myArray[arraySize];</code>
Mengatasi Kemudahalihan Kebimbangan:
Jika mudah alih menjadi kebimbangan, anda boleh menggunakan bekas vektor std:: bukannya tatasusunan dengan saiz berubah:
<code class="cpp">std::vector<int> myVector(arraySize);</code>
Dengan menggunakan sambungan ini, anda memperoleh lebih banyak fleksibiliti dalam mengurus saiz tatasusunan dalam situasi dinamik. Walau bagaimanapun, adalah penting untuk mengetahui batasannya dan mempertimbangkan implikasi mudah alihnya apabila menggunakannya dalam projek anda.
Atas ialah kandungan terperinci Mengapakah GCC membenarkan tatasusunan bersaiz berubah-ubah dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!