Soalan:
Walaupun ada tanggapan bahawa tatasusunan panjang berubah-ubah (VLA) bukan sebahagian daripada piawaian C, mengapa kod berikut disusun dan dilaksanakan dengan jayanya:
#include <iostream> using namespace std; int main() { int n; cin >> n; int a[n]; for (int i=0; i<n; i++) { a[i] = i; } for (int i=0; i<n; i++) { cout << a[i] << endl; } }
Jawapan:
Piawaian C tidak mewajibkan penyusun untuk menyokong VLA. Walau bagaimanapun, vendor pengkompil mungkin memasukkan VLA sebagai sambungan. Sebagai contoh, GCC versi 4.7 dan kemudiannya menyokong VLA.
VLA pada mulanya dicadangkan untuk dimasukkan dalam C 14 tetapi tidak diterima. Ia juga tidak termasuk dalam semakan C 17 berikutnya.
Atas ialah kandungan terperinci Mengapa Tatasusunan Panjang Pembolehubah Saya Menyusun dan Melaksanakan dalam C Walaupun Standard?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!