K.Maebashi's BBS 削除ページ

以下の投稿を削除します。

[2380] Re:ポインタ完全制覇の質問
返信
投稿者:(ぱ)こと管理人
2024/05/27 21:16:14

>C の場合 >変数定義で要素数を書かない場合(上記 static int a[]; が該当)には当該変数は >不完全型な仮定義 (tentative definition) になる・・・と言いたいところなんですが > static がある場合には仮定義にならず一発定義になります。 確認しました。ここについてはこれですかね。 | 6.9.2 外部オブジェクト定義 … | オブジェクトに対する識別子の宣言が仮定義であり,内部結合をもつ場合, | その宣言の型は不完全型であってはならない。 これを普通に読むと、 static int a[]; はそれ自体でコンパイルエラーになりそうなものですが (まあ実際、役に立たないと思いますし)、 | 大きさの分からない配列型は,不完全型とする。その型は,それ以降のその型の | 識別子の宣言(内部結合又は外部結合をもつ)で大きさを指定することによって, | 完全となる。 こっちでは(内部結合でも)それ以降の宣言で大きさを指定すればよい、 とあるようで、これがどういう時に有効なのか、読み解けていません…
パスワード:

管理者削除