ホームページ  >  記事  >  バックエンド開発  >  GCC コンパイラーは C で可変サイズの配列を使用できますか?

GCC コンパイラーは C で可変サイズの配列を使用できますか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-02 02:26:30552ブラウズ

Can GCC Compilers Use Variable-Sized Arrays in C  ?

可変サイズの配列: GCC 拡張機能

C 標準では、配列の宣言時にそのサイズが定数の整数である必要があると規定しています。しかし、この疑問は、配列サイズに非定数変数を使用するコード スニペットが GCC で正常にコンパイルされるという驚くべき観察を引き起こします。

GCC 拡張機能

GCC は導入しています標準の拡張機能で、配列サイズに非定数変数を使用できるようにします。 「The C Programming Language」の引用セクションで述べたように、これは標準ではサポートされていません。

The Surprise

質問内のコード スニペットは、配列 v1 と、整数の引数 (配列サイズを表す) を取る関数 f です。 f の v2 に値を割り当てる場合、GCC はこの非標準の動作を許可します。

影響

GCC はこの拡張を許可していますが、次の点に注意することが重要です。 C 標準の一部ではありません。これを使用すると、拡張機能をサポートしていない他のコンパイラまたはシステムで移植性の問題が発生する可能性があります。

強制と警告

コンパイラは、-pedantic のようなオプションを使用して標準を強制できます。 。このオプションを使用すると、GCC は可変サイズの配列などの非標準構造に遭遇したときに警告を発行します。同様に、-std=c 98 を指定すると、この構成はエラーになります。

結論

GCC の拡張機能では可変サイズの配列の宣言が可能ですが、次のことが重要です。これは C 標準の一部ではないことに注意してください。移植性と標準への準拠のために、一定の配列サイズを使用することをお勧めします。

以上がGCC コンパイラーは C で可変サイズの配列を使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。