式・文・ブロック、プログラミングスタイルなど

最終更新日:2004-06-10.

今回は、プログラミングスタイルなどについてちょっと。

Cのソースファイル(ソースリスト)を書くとき、使いなれたエディタを使います。
そして、エディタを起動します。

そこにはmainとなる関数が必ずあります。

int main( )
{
return 0;
}

上記のmain( )はmainの関数です。

そして、
{
}
の中にいろいろな命令を書きます。

上記の
return 0;
は、プログラムが終了したときに終了コードとして0を返すというものです。

もし、プログラムでなにかパラメータを使用したいときには、
下記のように変更します。

int main(int argc, char **argv)
{
return 0;
}

Cでは、予めよく使用する関数を標準関数として用意しています。
例えば、printf()という、数字や文字、文字列などを画面に表示する関数が
あります。
このように、標準関数を使用する際には、その関数に関する情報が書かれた
ヘッダファイルをincludeします。

#include <stdio.h>
int main(int argc, char **argv)
{
printf("argc=%d, argv[0]=%s\n", argc, argv[0]);
return 0;
}

・Cのプログラミングスタイルについて

プログラミングスタイルは、フリーフォーマットとあります。
これは、基本的には空白や改行の影響を受けない自由な形式です。
式、文、ブロックなどによって表現されます。
そのため、1行に複数の文をずらずらと書くこともできるし、
見やすくするために空白や改行、インデントを使用することもできます。

フリーフォーマットといっても、そのソースを誰が見ても分かりやすく
理解しやすいものにするために、以下のようなことに注意することが必要です。

機能的にまとまりを持った処理を関数にしておく。
複数の命令を1行に書かない。
機能ごとに字下げして見やすくする。
ところどころに注釈分を入れて、理解の助けとする。

・Cの関数の役割

Cのプログラムは、いろいろな関数の組み合わせから成り立っている
といわれます。

Cの関数は、数学の関数と類似しています。
ある関数に値を与えると、独自の処理を行い、その結果を返します。

関数に与える値を引数といい、関数に値を入力することを
引数を渡すといいます。
また、関数が処理によって値を出力することを値を返すといいます。

この関数に入力、出力する値は一つだけではなく、複数のときもあるし、
ないこと(省略されていること)もあります。

関数の中でも「main」という関数は、必ず一つあり、
プログラムの処理の流れは、この関数で始まり、この関数で終わるように
なっています。

・Cのプログラムの構成要素

Cのプログラムは、「式」、「文」、「ブロック」からなりたっています。

式とは、
x=y+z-1
のように、変数や定数を演算子で結びつけたものです。

文とは、
x=(y+z)/2;
のように、式にセミコロン(;)を付けたものをいいます。
これは、文章の句点に相当します。

ブロックとは、
{
a=2;
b=3;
c=a+b;
d=a-b;
}
のように、{}でくくられた一つ以上の文の集まりをいいます。

・注釈文をつける

ソースを書いているとき、それがどういう処理をするのか
すぐに分かるように注釈文をつけておくとよいでしょう。
そのソースを他人が見たり、手を加えることもあるかもしれません。
そのような場合、見やすいソースを書くこと、
ところどころに注釈文を書いておくことは大切です。

注釈文の書き方は、
/* .... */
のように「/*」と「*/」でコメント文をくくります。

こうすると、ソースファイルをコンパイルする際、
コメントは無視されます。

といっても、もし、それが
printf("/* .... */");
のような場合は、本来のprintf()としての働きをします。

・標準関数を利用するには

printf()のような予め用意されている標準関数を利用するには、
そのことについて書かれているヘッダファイルをインクルードします。
printf()関数は、「stdio.h」というファイルに
そのことが書かれています。
ソースファイルには以下のような形式で記述します。

#include <stdio.h>

こうすると、ソースファイルをコンパイルするときに
Cプリプロセッサが処理してくれます。

では、コマンドプロンプトでプログラム名にパラメータを指定して
その結果を表示させてみましょう。
+------------------------------------------------------------+
/* filename=no005-1.c */
/* include */
#include <stdio.h>
/* main */
int main(int argc, char **argv)
{
int i;
/* パラメータを表示する */
for(i=0; i<=argc; i++)
printf("%d=%s\n", i, argv[i]);
return 0;/* 終了 */
}
+------------------------------------------------------------+

上記をコンパイルして、以下のように実行してみました。
コマンドプロンプトで、プログラム名にp1 p2 p3
というパラメータを指定してみました。

TEST.EXE P1 P2 P3

0=C:\C-MAG\TEST.EXE
1=P1
2=P2
3=P3
4=(NULL)

戻る