#define

Reference:

  1. #(井號) 在C/C++ 的 #define macro 定義中的特殊用法

#define的一些特殊用法

1. #: 在宏(macro)展開的時候,會將#後面的參數替換成字串

EX:

#define p(exp) printf(#exp)

output = "exp"


2. ##:將前後兩個的單詞拼接在一起

EX:

#include <stdio.h>
#define cat(x,y) x##y()

void BubbleSort()
{
    printf("BubbleSort\n");
}

int main()
{
    cat(Bubble, Sort);          //這裡類似於function pointer的用法
    return 0;
}

output: BubbleSort


3. #@:將值變成一個字符

EX:

#define ch(c) #@c
int main()
{
    printf("--%c--\n", ch(a));
    return 0;
}

output: a

results matching ""

    No results matching ""