- プリプロセッサ -
前のページ 次のページ
リスト
プリプロセッサとは?
マクロ定義
プリプロセッサとは?

プリプロセッサとは、直訳すると前処理と言う意味で、コンパイルの開始前に行う処理のことです。

実は今までやってきたコンパイルは、「プリプロセス」、「コンパイル」の2つの動作を行っていたのです。それでは、実際にプリプロセスではどんなことをやっていたのでしょうか。
今まで書いてきたソースコードで以下のような構文をよく見かけたと思います。

#include <stdio.h>

実は、これがプリプロセッサ命令なのです。この命令は何をやっているかと言うと、コンパイルが走る前にstdio.hファイルを読み込んでいるのです。stdio.hは恐らく、Standard Input Outputの略で、標準入出力を意味しています。stdio.hにはprintfscanf等のC言語標準で用意している関数の記述が書いてあり、プログラム中でその関数が使えるのもstdio.hファイルを読み込んでいるからなのです。

マクロ定義

マクロ定義を定義するには、#defineと言うもの使います。#defineを使って、文字列とデータ値を括り付けることができます。そして、#defineで定義した文字列はプリプロセッサによって、データ値に戻されます。下のソースコードを見てみましょう。初めに、マクロ定義を使っていないものを書きます。

実行結果は以下の通り。

次にマクロ定義を使っているものを書きます。

実行結果は以下の通り。

2つのソースコードを見比べてみると、上のソースコードでは、13行目に少数3.14を使って計算しています。それに比べて下ソースコードは15行目に3.14の代わりにPAIと書いています。そして、3行目にマクロ定義を使ってPAIを定義しています。この時の2つの実行結果を見比べてみると同じですね。
これは、マクロ定義がプリプロセッサによって、PAIという文字列が3.14に展開され、上のソースコードと同等になったためです。これがマクロ定義です。

ポイント
   マクロ定義は小さなプログラムでは使用する場面は少ないです。もっと大きなプログラムになると使用する場面が増えてきます。

 



前のページ 次のページ