/* 警告: B:e4940: void ではない 関数 "x" の終端に return 文がありません */
修正前 enum RET_CODE { OK, ERROR }; enum RET_CODE x(char *str) { if(str == NULL) { return ERROR; } puts(str); /* returnが無いので不定値が返る */ }
修正後 enum RET_CODE { OK, ERROR }; enum RET_CODE x(char *str) { if(str == NULL) { return ERROR; } puts(str); return OK; }
解説 戻り値がある関数の最後で、return 戻り値を書き忘れると、 ゴミが返り、呼んだ側で意図しない結果を招きます。