e312.c

返却値の無い関数の返却値を使用


/* 修正前 */ /*int?void?*/ func() { return ;/* ゴミを返す */ }
/* 修正後 */ int func() { return(0) ; }

解説 int main() { int ret = func() ; if(ret == 0) { printf("ret はゴミ¥n") ; } return(0) ; } 以前、関数を呼ぶと必ず(何も考えず)、 関数の返却値をチェックする癖のついている人がいました。 この努力?に報いるために、関数定義側は int?void? を明確にし、 関数宣言(ANSI-Cではプロトタイプ宣言)を適切に行いましょう。 そうすれば、コンパイラがチェックしてくれます。