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