Renesas Synergy™

FAQ 104481 : extern宣言をしないで関数を外部参照をしたとき、コンパイラでエラーとならないのでしょうか?

Q: 質問

extern宣言をしないで関数を外部参照をしたとき、コンパイラでエラーとならないのでしょうか?


A: 回答 

extern宣言 (プロトタイプ宣言) が無い場合は、ANSI仕様によりその関数はintを返す関数であると解釈します。したがって、int型で外部参照され、エラーとなりません。

extern宣言 (プロトタイプ宣言) が無い関数を検出するには、コンパイル時に-Wno_prototype(-WNP) もしくは-Wallを指定してください。プロトタイプ宣言の無い関数に対してワーニングを出力します。

適用製品

M16Cシリーズ,R8Cファミリ用C/C++コンパイラパッケージ [M3T-NC30WA]
他にご質問がございましたら、リクエストを送信してください