return 0;

C言語を習ったことがある方は、多分、一度は理解しがたいと思った事があるだろうそれが、「return 0;」だ。
もし、「return 0;」の意味を理解しているのならば、このnoteは必要ないであろう。
そういった方はこの時点で「return;」していただいて構わない。

では本題に入ろうと思います。
「return 0;」ってなんだよ!
そう、私は最初、「return 0;」の意味なんて意味分からなかった。
なんで最後に「return 0;」なんだ。
なんで正常コードが「0」なんだ。

いや本当に理解しがたい存在だった。
だから私は、「return 0;」を正常に終了させるための暗黙の了解、すなわち自分自身に「二重思考」を植えつけた。
しかし困るのはその後の「戻り値」という概念だった。
「return "こんにちは";」みたいなコードが出てきた時、完全に混乱した。
そして、完全に心が折れてしまった。
C言語は理解できないものだと、認識するようになった。

転機が訪れたのは、それから数年後。
某IT業界で働いている時だった。
コマンドプロンプトを使用した業務をしている時に、このような文面を見つけた。
「%ErroLevel%」と入力した時、'0'であること。
この文章を読んだ時、私は強烈なデジャブに襲われた。
私はこれを知っているぞ。
そして知った。
終了コードは「return 0;」である理由は無い。
「return 1;」でも「return 2;」でも良いのだと。

そう、これはCUIの時代の産物であったのである。
もちろん、CUIをつかっているユーザーであれば意味があるであろう。
だが、今の時代に必要とされるのはGUIのプログラムであり、GUIのプログラムを作っている今日では、「return 0;」はほとんど意味を成さない。
だから、今の時代の終了コードはこうするべきであろう。

return 666;

ちなみに異論は認めます。

余談
C++のmain関数には終了コードが必要なかったりします。

この記事が気に入ったらサポートをしてみませんか?