Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bolehkah GCC Mengisytiharkan Saiz Tatasusunan dengan Pembolehubah Tidak Malar?

Bolehkah GCC Mengisytiharkan Saiz Tatasusunan dengan Pembolehubah Tidak Malar?

DDD
DDDasal
2024-10-31 22:57:29305semak imbas

Can GCC Declare Array Sizes with Non-Constant Variables?

Mengisytiharkan Saiz Tatasusunan dengan Pembolehubah Bukan Malar: Sambungan GCC

Walaupun pemahaman umum bahawa pengisytiharan saiz tatasusunan dalam C memerlukan nilai integer malar , telah diperhatikan bahawa kod tertentu, seperti:

<code class="cpp">int ArraySize = 5;
int MyArray[ArraySize];</code>

berjaya menyusun dalam sesetengah persekitaran. Pengecualian ini timbul daripada sambungan GCC.

Mengikut garis panduan C, tatasusunan terikat hendaklah ungkapan yang tetap. Penjelasan dari The C Programming Language oleh Bjarne Stroustrup juga mengukuhkan tanggapan ini. Walau bagaimanapun, GCC membenarkan penggunaan pembolehubah bukan malar untuk pengisytiharan saiz tatasusunan sebagai lanjutan kepada standard.

Bagi mereka yang mengutamakan mudah alih, disyorkan untuk menggunakan pilihan '-pedantic' untuk menerima amaran untuk perkara tersebut. sambungan. Sebagai alternatif, '-std=c 98' boleh digunakan untuk menganggapnya sebagai ralat dan memastikan pematuhan kepada standard.

Atas ialah kandungan terperinci Bolehkah GCC Mengisytiharkan Saiz Tatasusunan dengan Pembolehubah Tidak Malar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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