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


Copyright(C) 2006-2012 CLAYPOT. All Rights Reserved.