C での可変配列サイズ宣言
C では、通常、配列のサイズは定数の整数値であることが期待されます。ただし、サイズとして非定数変数を使用して配列を宣言できるかどうかという疑問が生じます。
Bjarne Stroustrup が『C プログラミング言語』で強調したように、「配列バインドは定数式でなければなりません」。その結果、以下のコードは正しくないとみなされます:
<code class="cpp">int ArraySize = 5; int MyArray[ArraySize]; // incorrect</code>
しかし、驚くべきことに、GCC v4.4.0 などの一部のシステムでは、コードは正常にコンパイルされます:
<code class="cpp">void f(int i) { int v2[i]; } int main() { int i = 3; int v1[i]; f(5); }</code>
この予期しない動作これは標準に対する GCC 拡張によるものです。デフォルトでは、GCC では配列サイズとして非定数変数の使用が許可されています。ただし、これはすべてのコンパイラやプラットフォームでサポートされている機能ではない可能性があります。
移植性が要件の場合は、GCC で -pedantic オプションを使用してこの拡張機能の警告を有効にするか、-std=c を使用することを強くお勧めします。 98 を入力するとエラーが発生します。標準に準拠することで、コードの信頼性が高まり、クロスプラットフォーム互換性が高まります。
以上がCで可変サイズの配列を宣言できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。