見出し画像

main()をトップに書こうよ

最近、専門学校でC言語を教えてて思うのは、教科書に書かれているソースコードのダサさ。

その1つは、main()関数が、ファイルの最後に書かれていることです。

ずっと前から私は、main()関数はファイルのトップにあるべきだと思っています。

#include <stdio.h>
// 関数プロトタイプ
int function();

int main()
{
	int ans=function();
	printf("ans:%d\n",ans);
	return 0;
}

int function()
{
   .......... 
}

それに対して、教科書に書かれているコードはこうです。

#include <stdio.h>

int function()
{
  .........
}

int main()
{
  int ans=function();
  printf("ans:%d\n",ans);
  return 0;
}

紙面の制約でプロトタイプ宣言を書きたくないためだと推測されます。

これくらいの長さならまだ見通しは悪くないですが、関数が増えていくと、どんどん、main()関数は後ろに追いやられます。これか良くないです。

プログラムは、書くことより読むことの方が多いと言われます。なので、読み手を意識したコーディングが必要です。

初めて見るプログラムを解読するとき、一番のてがかりはエントリーポイントmain()関数だと思います。なので、ソースファイルのはじめにmain()関数はあるべきだと考えます。

エディターを開いて、main()関数を探してスクロールさせるのは、プログラムの読み手に対して不親切です。Visual Staudioでは、関数リストから目的の関数へ飛ぶ機能もありますが、それすら面倒です。

ついでに言えば、複数のソースファイルから構成されるプログラムの場合、main()が含まれるファイルは、それと判るファイル名であるべきです。

ささいなことかもしれませんが、これはプログラミングにおける私のポリシーです。

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