法大奥山研究室

 previous  contents

2.2. 文法の構成要素


 コンパイラが実際に解釈する文法は,次の通りです。

/* Example 2.1 */コメント
(注釈文)
/**/ で挟まれた部分はコメントと解釈。C99 では C++ のように,// から改行まででも良いとなっている。[C99, 6.4.9]
#include <stdio.h>プリプロセッサ 
(前処理)
区切り子 # で始まるのは「プリプロセッサ」と解釈。ここでは,printf関数が定義されているライブラリ stdio.h の読み込み。printf関数を使うため。
int main(void) { }関数の定義main関数の定義
const int a = 0;宣言変数 a の定義
register int m = 12;宣言変数 m の定義
int n = 65;宣言変数 n の定義
printf("a is %d; m is %d; n is %d.\n", a, m, n); 文(式文)printf関数の呼出し文。関数の呼出しは「式」。printf関数は第1変数に指定した文字列リテラル内の文字列を標準出力。第2変数の a の値が文字列リテラル内の1つ目の %d,第3変数 m の値が2つ目の %d,第4変数の n の値が3つ目の %d 部分に出力される。%d を「変換指定子」(conversion specifier)といい,この場合十進法(digit)での出力を意味する。
return 0;文(return文)main関数の返却。main関数の従属変数の値(戻り値,返り値,返却値)を 0 に設定。

この例より理解できることは,字句それぞれが独立しているというよりは,字句の組合せで文法が成り立っていることです。そして,ソースファイルに書き込む文法は,次から構成されていることが理解できます。

先ずは,宣言の概略からです。


 previous  contents