質問:
可変長配列 (VLA) という概念にもかかわらずは C 標準の一部ではありませんが、次のコードがコンパイルおよび実行されるのはなぜですか成功:
#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; } }
回答:
C 標準では、コンパイラに VLA をサポートすることを義務付けていません。ただし、コンパイラ ベンダーは拡張機能として VLA を含める場合があります。たとえば、GCC バージョン 4.7 以降は VLA をサポートしています。
VLA は当初 C 14 に含めることが提案されましたが、受け入れられませんでした。これらは、その後の C 17 リビジョンにも含まれていません。
以上が標準にもかかわらず、可変長配列が C でコンパイルおよび実行されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。