ホームページ > バックエンド開発 > C++ > C/C で長さゼロの配列を定義することは有効ですか?またその影響は何ですか?

C/C で長さゼロの配列を定義することは有効ですか?またその影響は何ですか?

Linda Hamilton
リリース: 2024-12-29 22:20:24
オリジナル
734 人が閲覧しました

Is Defining a Zero-Length Array in C/C   Valid and What are the Implications?

C/C で長さ 0 の配列を定義することの影響

GCC にはコンパイラ エラーがないにもかかわらず、サイズの配列を定義するゼロ (例: int array[0];) は C と C の両方で無効です。 ISO 9899:2011 6.7.6.2 によると、配列サイズを表す式は、ゼロより大きい値を持つ定数式である必要があります。

GCC に警告がないのは、GCC が次のようなレガシー コードをサポートしていることに起因している可能性があります。 [] 構文なしで配列を使用しました。ただし、このような配列は最適化されていないことを理解することが重要です。

C では、空の配列とも呼ばれる長さ 0 の配列が存在しますが、要素はありません。これは、位置合わせを目的としたテール パディング構造など、特定の状況で役立つ場合があります。ただし、一般に、長さがゼロの配列を宣言することはお勧めできません。未定義の動作やエラーが発生する可能性があります。

以上がC/C で長さゼロの配列を定義することは有効ですか?またその影響は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート