预处理中的 # 和 ##

#include <stdio.h>
#define TOKEN_PASTER(n) printf("num"#n"= %d\n",num##n)

/*
 * #: 字符串化
 * ##:组合2个标记(token)
 */
int main(void)
{
    int num1 = 100;

    TOKEN_PASTER(1);

    return 0;
}

gcc -E token.c

# 4 "token.c"
int main(void)
{
 int num1 = 100;

 printf("num""1""= %d\n",num1);

 return 0;
}

gcc token.c -Wall
运行结果:

num1= 100

猜你喜欢

转载自www.cnblogs.com/luwudang/p/9639968.html