K.Maebashi's BBS

ご自由に書き込んでください。雑談も可。
テスト書き込みの類はテスト用掲示板にどうぞ

[日付順表示] [日付順インデックス] [スレッド順インデックス]

新規投稿 | 開設者ホームページへ戻る | ヘルプ

[205] Re:C言語ポインタ完全制覇についての質問
投稿者:九龍
2007/02/20 02:13:25

>それをやっちゃうと、swap(float *a, float *b)のような関数で困りますし。 なるほど。仰られる通りです。 >もともと、プロトタイプ宣言なんて書かなくても(警告は出ても)動きますから、 >結合はされるとしても、プロトタイプ宣言の有効範囲は微妙な問題のように >思います。 > >以下のソースをbcc32でコンパイルしたところ、 > >void hoge1(void) >{ > extern void piyo(int a); > > piyo(1); >} > >void hoge2(void) >{ > piyo(2); >} > >こんなエラーが出ました。 >エラー E2356 proto2.c 10: 'piyo' の再宣言で型が一致していない(関数 hoge2 ) >エラー E2344 proto2.c 3: 一つ前の 'piyo' の定義位置(関数 hoge2 ) > >hoge2のブロックの先頭に「extern void piyo(int a);」を入れると >ちゃんと通るので、少なくともbcc32においては、hoge1()内部の宣言がそのまま >hoge2()内部で有効になっているというわけではないようです。 > >この件について規格書になにか書いてないかとぱらぱらめくったのですが >見つけられませんでした。 わざわざ規格書まで調べて頂き有り難うございます。 と、ゆうことは処理系依存って事なんでしょうね…。
[この投稿を含むスレッドを表示] [この投稿を削除]