1 #include
2
3 #define TEST_NUM 6
4
5 #define VAR2STR(var) #var
6 #define JOIN(x, y) x##y
7
8 int main(int argv, char* argc[])
9 {
10 printf("%s: %d\n",VAR2STR(TEST_NUM),JOIN(TEST_, NUM));
11 return 0;
12 }
这里面用了这两个符号,下面看一下预处理过后的代码:
.......
938 int main(int argv, char* argc[])
939 {
940 printf("%s: %d\n","TEST_NUM",6);
941 return 0;
942 }
再看一下运行结果:
[root@works]# ./test
TEST_NUM: 6
#及##在这一段代码里的作用表现为:
#将紧接后面的无素(遇到空白视为一个元素),转化为字符串,而##则起到连结的作用.