マクロ

Last-modified: 2012-07-04 (水) 11:40:16
 

マクロとは

C言語のマクロ機能では、プログラム中の数値などを文字列に置き換えて記述することができます。

例1

ユーザーが入力した数を 10 倍にして表示するプログラムの例です。
10 という数値を N という文字列に置き換えています。

#include
#define

int main(){
    int n;

    scanf("%d", &n);
    printf("%d\n", n * N);

    return 0;
}

例2

マクロは変数とは違い、プログラム実行前に置き換えが行われるので、以下のようなこともできます。

#include
#define

int main(){
    int n;

    loop {
        printf("0 以上 10 未満の数を入力してください:");

        scanf("%d", &n);

        if(n >= 0 && n < 10){
            break;
        }
    }

    return 0;
}

変数には型がありますが、マクロは単なる置き換えなので型はありません
また、コンパイル時に処理されるので、マクロはプログラム中で代入できません

マクロの形式

マクロは次のような形式で利用します。

#define

名前には、一般的に大文字を用います。
これは、変数と区別する為です。

100 を MAX と定義する。

#define

課題

課題1

以下のプログラムは意図した出力 (= 4 ) が得られません。
どうして動かないのか考え、修正しなさい。

プログラム中の、1 + 1という部分は残すこと

#include
#define

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

課題2

C言語では、いくつかのマクロが最初から用意されています。
int 型の最大値と最小値を表すマクロをインターネットで検索して探しなさい。

また、そのマクロの数値を実際に表示させ、それがどのような数値なのか考察しなさい。

出力形式

改行区切りで、2つの数値を表示します。

int 型の最小値
int 型の最大値