マクロ

C

#からはじまる1行分のことをマクロと呼びます。
マクロはプログラムのソースコードをコンパイルする前にプリプロセッサが処理します。

プログラムの最初に記述する「#include」もマクロの一種です。

マクロは次のような書式で書きます。

//マクロの中にはスペースやタブは入れてはダメ
#define マクロ名 パターン

■置換
#defineは、文字列を置換するマクロです。

#define VALNUM 3;

次のように書くと、DEBUG_MODEが定義されているということを表します。

#define DEBUG_MODE;

簡単なサンプルを書いてみましたが、うまく動作せず。

#include <stdio.h>

#define VALNUM 3;

int main(void)
{
    printf("%d \n", VALNUM);
    
    
    return 0;
}


//実行結果
「7行目」で記述エラーを発見しました。
「,」を付け忘れています。

もうひとつ、サンプルを書きましたが、これもうまく動作しませんでした。原因について調査中、、、

#include <stdio.h>

#define VALNUM 3;

int main(void)
{
	int i;
	
	for (i=0; i<VALNUM; i++) {
	    printf("%d \n", i);
	}
    
    return 0;
}

//実行結果
「9行目」で記述エラーを発見しました。
「identifier」を付け忘れています。

エラーの原因から地道に紐解いていこうかと思います。
解決したら、ブログに追記します。

2014.09.25追記
コメントからご指摘いただいた点を元に、下記のようなプログラムを作って動かしてみました。

#include <stdio.h>
 
#define VALNUM 3
 
int main(void)
{
    int i;
     
    for (i=0; i<VALNUM; i++) {
        printf("%d \n", i);
    }
     
    return 0;
}

エラーが出ずに実行され、コンソール上には「0 1 2」という表示が出ました。
ケアレスミスでした。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です