初めてのC言語!!

今日のメニュー

  • #include
  • スペースやタブについて
  • コメント
の3点です。まだまだ導入編ですね。それでは見てみましょう。

#includeって

前回、main()関数の中には命令文を2つ記述しておきました。ちょっとみてみましょう。

return 0;
printf("〜");

ですね。このprintfという命令文も実は関数だったのです。main()を 実行するとprintfという関数を呼び出す命令をします。呼び出されたprintf関数の中 には、標準出力(画面)に()内の文字(つまり、引数ですね)を表示させるという命令文があらかじめ書か れていますので、これを実行したということになります。

このような、実際に自分でプログラムに書くと大変入り組んでいるし、また、無かっ たら無かったで困ってしまうような関数はあらかじめ「標準ライブラリ」として用意 されています。printfも標準ライブラリに定義されている関数のひとつで、そこから printfを使ったということです。

その標準ライブラリを使わしてくれー。という箇所が1行目の

#include <stdio.h>

です。printf関数を使いたいからstdio.hファイルをinclude(含む)しておいてくれ よ。と1行目で指示を出しているのです。「(・3・)あるぇー?。この#includeには 「;」をつけなくていいの?」と思った方もいるでしょう。いいんです。この文はプ リプロセッサディレクティブと言って、コンパイルの前にやっておくことをプリプロ セッサというプログラムに直接指示を出している箇所なのです。ここではコンパイル する前にstdio.hに記述されている内容を挿入しろと指示しているわけですね。

もちろん、ライブラリはstdio.h以外にもたくさん用意されていて、用途毎に分かれ ていますが、これは自分で調べながら使いこなせるといいですね。


スペースやタブについて。

C言語ではスペースやタブを無視します。つまり、命令文や関数名がどのような位 置にあっても問題はありません。ですが、命令文や定義した関数名の途中にスペース を入れたりしてはいけません。サンプルをみれば一目瞭然ですのでみてみましょう。下記のプログラムはコンパイルされるプログラムです。

#include                 <stdio.h>
int      main(
  ){
 printf(
    "プログラマなら誰もが1度は書くコードなんです。"
 
         );
   return 0;
      }

下記のプログラムは命令文や関数の途中にスペースや改行、タブが入っているためコンパイ ルが通りません。

#include                 <stdio.h>
int      ma
      in(
  ){
 pr intf(
    "プログラマなら誰もが1度は書くコードなんです。"
 
         );
 ret
  urn 0;
      }

と2つのサンプルをみてみましたが、コンパイルがされるからといって、上記の(前者)ようなプログラムを書くことはお勧めしません。と、いいますのも、このプログラムを人が読むことになった場合、あるいは、自分が読み直すことになったとしても、何がしたいプログラムなのか読み返すことが大変困難になります。プログラムを書くときには、コンパイラのために書くのではなく、人が読むものだということを常に意識しなければなりません。プログラマのコーディングスタイルは各々が持っているところはありますが、わざわざ読みにくいようなコーディングスタイルを身に着けるべきではないと筆者は思います。


コメント

プログラムは人が読み返せるように書こう!といいましたが、やはり、命令文の列 挙だけでは、まだまだ読みにくいプログラムといえます。そのため、C言語ではプロ グラム中に好きなコメントを入れられるようになっています。

コメントを書きたい場合は

/* ここはコメントです。*/

のように、「/*」と「*/」 のあいだ記述することができ、数行に渡っても有効なコ メントとなります。

#include <stdio.h>
int main()
{
	/* ここはコメントです。 */
	printf( "プログラマなら誰もが1度は書くコードなんです。" );
	/*
	ここもコメントとして有効です。
	コメントは適切な長さで的確に書きましょう
	*/
	return 0;
}

もうひとつのコメントは

//

で、単一行コメントといいます。単一行コメントはその行の終端(改行される)までが コメントとなります。

#include <stdio.h>
int main()
{
	// ここはコメントです。
	printf( "プログラマなら誰もが1度は書くコードなんです。" );
	// ここもコメントとして有効です。
	// コメントは適切な長さで的確に書きましょう
	return 0;
}

しかし、この単一行コメントはJAVAやC++のコメントなのでCのコメントは/* */を使 うことを推奨します。


今日は簡単に、「関数」「命令文(statement)」「printf()関数」「#include」 「コメント」について触れてみました。今日覚えたことだけでは、まだ自由にプログ ラミングすることは出来ませんね。最後に次回への引継ぎとして、

#include <stdio.h>
int main()
{
	/* 2行にわたって標準出力に表示させてみよう */
	printf( "筆者はプログラマになる前はバンドマンで楽器店勤務でした!" );
	printf( "↑ミクスチャーバンドのギタリストだったんです。うへぇ。" );
	return 0;
}

と書いてみました。これは標準出力に

プログラマになる前はバンドマンで楽器店勤務でした!
↑ミクスチャーバンドのギタリストだったんです。うへぇ。

と2行にわたって表示させたいのですが、コンパイルして実行すると、

筆者はプログラマになる前はバンドマンで楽器店勤務でした!↑ミクスチャーバンドのギタ
リストだったんです。うへぇ。

うは。つ、繋がってしまいましたね。。。 というわけで、次回は「改行」を出力するエスケープシーケンスから学習してみま しょう。ではでは。


©2010.SUNDORA Consulting CO., LTD. All Right Reserved.