e4117.c

戻り値書き忘れ

/* 警告:   B:e4117: void ではない 関数 "x" は値を返さなければいけません */

修正前 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; }

解説 戻り値がある関数で戻り値を書き忘れると、ゴミが返り、 呼んだ側で意図しない結果を招きます。