わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

戻り値に配慮しない関数

昨日の続きです.
fopen, malloc, getchar, fgetc, scanfは戻り値を確認する必要があるのですが,これらと対をなす関係にある,fclose, free, putchar, fputc, printfについては,戻り値を確認する処理を書かないのが普通です.
といっても,freeの戻り値の型はvoidで,比較どころか,値を得ることができないので,除外しておきましょう.
残りについては,一応戻り値があります.でも「printf("hello, world\n");」のように書いて,その値を使いません.
その戻り値を得て,以後で何かに使うことは無駄というものでしょう.例えばfcloseの呼び出しでEOFが返ったとして,ファイルを閉じ直すわけにもいきません.
戻り値に配慮するかしないかは,ある程度は経験*1とか慣習にもよりますが,「その値をチェックすることに意味があるのか?」と自問することで,答えが出てくるものです.

*1:「どれだけたくさん他のプログラムコードを読んできたか」であって,「どれだけ書いてきたか」ではありませんよ.