C 2つのマクロの例

1289 ワード

マクロを定義する場合、カッコは名前のすぐ後ろにあり、できるだけマクロのパラメータにカッコを付けて#undefを使用してマクロの定義を消去します.マクロは置換原則を使用しているので、関数よりも速く、パラメータをタイプとして、以下のように関数が完成できないタスクを完了することができます.
#include <stdio.h>
#include <stdlib.h>

#define MAX(a,b) ((a)>(b)?(a):(b))

#define MALLOC(n,type) ((type*)malloc(sizeof(type)*(n)))

#undef MAX

void main() {
    int b=2;
    int a=3;

    char* c = MALLOC(5,char);
    c[0] = 'a';
    c[4] = 'c';
    printf("%d
"
,MAX(a,b)); printf("%c
"
,c[4]); }