Rumah > pembangunan bahagian belakang > C++ > Mengapa Penyusun C Menerima VLA Walaupun Larangan Standard?

Mengapa Penyusun C Menerima VLA Walaupun Larangan Standard?

Barbara Streisand
Lepaskan: 2024-12-26 04:58:13
asal
349 orang telah melayarinya

Why Do C   Compilers Accept VLAs Despite Standard Prohibition?

VLA dalam C : Penerimaan Pengkompil Walaupun Ciri Bukan Standard

Variabel Length Arrays (VLA), yang diperkenalkan dalam C99, tidak disokong secara rasmi dalam C . Namun, pengkompil seperti g dan clang secara mengejutkan membenarkan pengisytiharan VLA, walaupun menghasilkan amaran apabila bendera -pedantic didayakan.

Penerimaan Pengkompil

Penerimaan pengkompil terhadap VLA berpunca. daripada pematuhannya kepada warisan tingkah laku pengkompil C. GCC, khususnya, mengekalkan keserasian dengan pengkompil C lama yang membenarkan VLA.

Implikasi Standard

Walaupun pengkompil menerima, C secara jelas melarang VLA dalam tatabahasa pengisytiharan tatasusunan dalam [dcl.array]: hanya ungkapan malar boleh digunakan sebagai penentu saiz tatasusunan. Dalam contoh anda, n tidak memenuhi keperluan ini.

Pelaksanaan Pengkompil

Walaupun piawaian tidak membenarkan VLA, pengkompil yang menyokongnya berbuat demikian melalui sambungan. Butiran pelaksanaan khusus berbeza-beza bergantung pada pengkompil. Dalam kes g dan clang , contohnya, VLA dilaksanakan sebagai tatasusunan biasa pada tindanan, dengan saiznya diperuntukkan secara dinamik semasa masa jalan.

Atas ialah kandungan terperinci Mengapa Penyusun C Menerima VLA Walaupun Larangan Standard?. 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