include

第12回
プリプロセッサ
機械語コード生成前のテキスト置換
プリプロセッサ
(preprocessor)
ソースコードの一部の
テキストの置換
プリプロセッサへの指令
プリプロセッサ
ソースコード
#include <stdio.h>
#define PI 3.14
stdio.h の内容に置換
int main(void)
{
printf(”PI=%f¥n”, PI);
return 0;
}
機械語
コード
コード生成
(printf などが定義されている)
int main(void)
{
printf(”PI=%f¥n”, 3.14);
return 0;
}
PIが置換された
文字列内のPI
は置換しない
#include指令(1/2)
#include <ヘッダファイル>
指定されたヘッダファイルをソースコードに取り込む
(例) #include <stdio.h>
ヘッダファイル:
定数の定義や関数のプロトタイプ宣言などが書かれたファイル.
標準ヘッダディレクトリ /usr/include の中にある.
printf 関数や scanf 関数は,stdio.h を
インクルードしないと使用できない.
cos関数やsin関数は, math.h を
インクルードしないと使用できない.
#include指令(2/2)
#include
”ヘッダファイル”
ユーザの作成したヘッダファイルをソースコードに取り込む
(例) #include
”mylib.h”
ヘッダファイルは,ソースコードと同じユーザディレクトリにある
#define指令
#define
名前 記号列
ソースコード中の名前を記号列で置き換える
#define PI 3.14
#define EPS 0.000001
行末にはセミコロン(;)は付けない
使用例:
math.h のインクルード
#include <stdio.h>
#include <math.h>
M_PI は math.h
int main(void)
の中で宣言されている
{
円周率
double x,y;
x=cos(M_PI);
y=sin(M_PI);
printf(“%f,%f¥n”,x,y);
return 0;
}
使用例: 配列のサイズの定義
#include <stdio.h>
#define SIZE 10
int main(void)
{
int a[SIZE];
int i;
for(i=0; i<SIZE; i++){
scanf(”%d”, &a[i]);
}
return 0;
}
SIZE の値を
簡単に変更可能