元ネタ

プログラミング初心者スレ・Part1

2 :以下、名無しにかわりましてVIPがお送りします。:2007/11/21(水) 20:50:08.21 ID:cmLDyUZr0

基本形

#include<stdio.h>

void main()
{

return 0;

}

せっかくだから何が悪いのかもちゃんと書きなさいよ><

C言語

という訳で、元ネタで示された基本形の悪いと考えられるところを突っ込む。
ちなみに、元ネタは以下のもの。

#include<stdio.h>

void main()
{

return 0;

}

一見どこにでもあるようなスタイルに見えるが、いくつかの真似するべきでない過ちを含んでいる。すなわち

というものだ。

最初の、main関数がvoid型になっているのは、非常によくみるコードだ。
けれども、ANSIではmain関数はint型で定義するよう定められている。
標準に従うべきか?という議論はあるだろうけれども、俺様オンリーソースでない限り、標準に従っておくのが無難だ。
スレでは標準にこだわる標準厨が沸くことがあるが、厳密に標準に準拠する必要はないと筆者は考えているので、「可能な限り」標準に従えるよう、努力すれば十分だろう。
それを差し引いても、voidなmain関数はよくない書き方だといえる。
ちなみに、大学の講義で使われる教科書や、古いタイプの教授はmainをvoidで書きたがる傾向にあるので、注意が必要だ。

次のreturnが値を返しているという点だが、これは「mainがvoid型なのに、値を返すのはおかしい」という意味である。
もしmainがint型なら、値を返すのもおかしくはない。
voidのreturnで返された値は、処理系によっては無視されるだろうが、厳密には正しくないので、returnだけにしておくか、そのまま}に落としてしまって、voidであることを読み手に理解させたほうが良いだろう。

これらを踏まえて書くと、先の基本形は

#include<stdio.h>

int main()
{

return 0;

}

となる。

今回はmainをint型に直したので、returnが値を返していてもおかしくなくなった。
きちんとした土台の上に家を建てることが、丈夫な家への近道なのである。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS