2016年7月8日 星期五

C語言 - 使用Macro中#字號用法

1. #: 在Macro展開的時候會將#後面的參數替換成字串

#define dprintf(arg) printf(#arg);

調用dprintf(test)的時候會將#exp換成字串"arg"

2. 程式範例
#include <stdio.h>

#define dprintf(arg) \
do { \

        printf("%s: %s\n", arg, #arg); \
} while (0)

int main(int argc, char *argv[])
{
        char *hello = "DEBUG"; \
        dprintf(hello);
        return 0;
}

執行結果:
DEBUG: hello
3. 上面範例Macro展開後
第一個arg會被hello變數取代,hello是個指標,指向"DEBUG"字串
第二個arg會被"hello"字串取代
dprintf(hello)
do {
        printf("%s: %s\n", hello, "hello");
} while (0)

沒有留言:

張貼留言