main()という記述の仕方をしています。実は、この書式は、間違いではないのですが、本来のC言語のありかたを考えれば、あまり推奨できる記述方法とは言えません。いうのも、すでに述べたとおり、C言語は、そもそもunixというOSに使用する言語として開発されました。このOSが開発された当時、コンピュータのUIは、現在のウィンドウズやMacOSのような、GUIではなく、キーボードからの文字入力に対応した、CUIでした。そのため、OSになんらかの支持を与える時の書式は、コマンドラインからの文字列の入力に依存するスタイルでした。unixというOSは、unixそのものもそうですが、unixで使用されるコマンドも、C言語で記述されています。そのコマンドのほとんどが、そのあとに、「オプション」といものを付加することが可能でした。コマンドラインのオプションたとえば、代表的なunixのコマンドで、あるファイル内の情報を見る、「cat」と呼ばれるものがあります。hello.txtのように、コマンドの後ろにファイル名を付加します。hello.txtのようにして使用すると、同じファイルが行番号をつけて表示されます。このように、unixのコマンドには、後ろに「いくつかのコマンドを付加する可能性がある」仕組みになっているのです。0;}という形で記述されるのが普通なのです。このmain()関数の引数の、argcは、付与されたオプションの数であり、その数だけ、文字列配列、argsが用意されるのです。"hello.txt"という風な値が入ります。これは、「この"cat"コマンドが実行された際、2つのオプションが設定されました。一つ目が"-n"で、二つ目が"hello.txt"という意味です」ということになるのです。オプションがなければ、argcは1になり、args[0]の中にはコマンド名が入るだけです。0で、0を返すことが期待されます。-1などとして、-1など、それ以外の値で返します。0以外には特に規定がありません。MS-DOSなどでも同様の仕様が使われるのちにC言語は、PCでも使用されるようになり、Windowsが出る以前のポピュラーなOSである、MS-DOSは、UNIXライクな構造をしていたことから、このような仕組みもこのまま受け継ぎました。したがって、本来ならこのような書式で書くことが望ましいでしょうが、ここではあえて、特に必要のない限り、シンプルな書式を用いることにしています。