ものづくりBLOG blog page

第2章 何もしない(1):main()関数

2011-01-01 (Sat) 02:00
H8+C言語入門:第2章 何もしない(1):main()関数
 
 第2章では、何もしないプログラムを作成します。
 
<サンプル2-1>
void main(void)
{
}
 
 これをコンパイルして、H8へロードし、動かしても何も動きません。
 このプログラムはコンパイルできる最少のコードで構成しています。 
 
 まず、mainは関数名です。
 コンパイラは、最初にmain関数を探して、コンパイルしま す。 
 よって、必ずメインプログラムには、main関数を1つだけいれる必要があります。 
 次にある小括弧の左と右、これらに囲まれた領域は関数が受け取る引数を書 きます。
 このプログラムの場合、引数がないのでなにも書かれていません。 
 最後に中括弧、{と}に囲まれた領域、ここに実際の処理を書きます。
 上記サンプル2-1では、つまり、ここに何も書かれていなかった為に、何もしないプログ
 ラムが生成されます。
 
 ここで新しいキーワード「void」を使いました。
 詳しい説明は、第7章を参照してください。
 voidとは、「無効」という意味で使います。カッコの中にもvoidとありますが、これは省
 略されることもあります。
 
 一つのプログラムには、必ずこのmain関数が一つあります。じつは、このmain関数こそ
 が、一番初め に実行される部分なのです。
 ですが、main関数という命令があるわけではありません。main関数の実体は、直後の
 「{」から「}」で囲まれた部分です。というわけで、このプログラムでは、何も記述があ
 りませんから、何も実行しないということが分かると思います。 
 この形はC言語の基礎中の基礎です。 
 これは重要です。C言語では「{」から「}」をブロックと呼び、一つのかたまりとしてみ
 なします。これからいろいろなところでよく使うものなので、この書き方はよく覚えてい
 てください。
 (というより、もう授業で習っていれば、そのお復習いということでご覧ください)
 
 では、実際にH8を動かして、「何も動かないこと」 を確認してください。
 
 次のプログラムは、サンプル2-1と同じ内容を示します。
 サンプル2-2は、main関数の先頭に付けていた型の指定voidを外しました。
 これでも大丈夫です。
 コンパイラによっては、main関数に型宣言がないということで、警告(Warning)を出すか
 もしれませんね。
 
<サンプル2-2>
main()
{
}
 
 サンプル2-3は、更に改行をなくして、一行にしてしまいました。
 これでも大丈夫です。
 
<サンプル2-3>
main(){}
 
 C言語では、実行してほしい命令の区切りに「;」を使います。もしこのマークが無いと、
 どこが区切りか分からないのでコンパイルができません。
 (これも、もう授業で習っていますか?)
 コンパイラは、文中の空白、タブ、改行を無視します。
 
 プログラムの書き方で、コンパイラは空白やタブ、改行は無視しますと書きましたが、そ
 れはどういうことかというと、
 
main()
{
}
 
 でも、
 
main(){}
 
 でも同じことを示します。この前後にあるサンプルの書き方を見れば、一目瞭然(?)です
 よね。これでも問題なくコンパイル可能で、C言語は、基本的に空白や改行は無視すると
 いうことはご理解いただけると思います。但し、文=ステートメントの途中や文字列の途
 中に改行を入れてはいけません。例えば、
 
ma
in(){}
 
 は、コンパイルエラーとなります。また、
 
ma in(){}
 
 aとiとの間に空白が入っている例ですが、これもいけません。
 
 サンプル2-1に「;」を付けてみました。
 
<サンプル2-4>
void main()
{
;
}
 
 「;」は、個々の文の終わりを示します。
 いくら改行や空白が例外を除いて自由とはいえ、見ずらいソースは嫌われますから注意し
 ましょう。現代のプログラムの重視される技術として、プログラムソースの可読性が問わ
 れます。特に、複数の人で共同開発をするのなら、ソースの見やすさ、読みやすさについ
 ても求められます。このことも気にしつつ、所謂、「きれいなソースプログラム」を書く
 様にしていきましょう。
 
 サンプル2-3と2-5をもじって、次の様な何もしないプログラムを書きました。
 
<サンプル2-5>
main(){;;;;;}
 
 !実は、厳密には、H8の実行形式のファイルになった時、サイズが違います。
  サンプル2-1〜2-3迄は同じになります。
  サンプル2-4、2-5は少しだけ、増えます。
  不思議でしょ!みんな同じ、何もしないプログラムなのにですね。
  なぜこうなるのかは、自分で調べてみてくださいね。
 
 
−まとめ−
 1.C言語のプログラムでは、main関数が必ず一つ必要。
 2.プログラムを実行するとmain関数、つまり「main( )」の後の 「{」と「}」で囲まれた
  内容が実行される。
 3.セミコロン「;」は、文の終わりに必ず書く。
 4.C言語に記述できる文字、プログラム中でC言語のコンパイラが認識できる文字は、半
  角英数字記号、つまりASCIIコードになります。
  C言語では、大文字と小文字を区別するので注意してください。
  例えば、変数aと変数A区別されます。

ものづくりBLOG

Blog Category

Blog Calendar

RSS 2.0