Loose-Info.com
Last Update 2012/07/05
TOP - C言語 - #define

ソースファイル中のテキストを指定したもので置換します。
記述方法は引数の有無で下記のようになります。

#define   名前1    値1 

名前1
置換の対象となる文字列
値1
名前1の部分に置換されるテキスト

#define   名前1 (  名前2  , ...)  値1 

名前1
置換の対象となる文字列
名前2
引数として実際の置換時に任意指定可能な値の名前
値1の中に記述して使用する
コンマで区切る事により複数記述可能
値1
名前1の部分に置換されるテキスト
名前2の引数に該当する文字をテキスト中に入れた場合は、置換時の引数で置き換えられる

(例)
#include <stdio.h> #define TEST1 printf("テスト1\n") #define TEST2 printf("テスト2\n") #define TEST3(a) printf(a) #define TEST4 bbb\n #define TEST5 "ccc\n" #define TEST5TEST5 "ddd\n" int main () { TEST1; TEST2; TEST3("aaa\n"); /* 引数を利用 */ printf("TEST4\n"); /* 引用符に囲まれた部分は置換されない */ printf(TEST5); printf(TEST5TEST5); /* 名前は部分一致するTEST5では置換されない */ /* 変数名などと同様の形式 */ return 0; }

実行結果
テスト1 テスト2 aaa TEST4 ccc ddd