nowayings 发表于 2015-3-31 15:07:22

宏参数的连接

先看下面一段程序:
#include <stdio.h>
#include <stdlib.h>

#define STR(s) #s
#define CONS(a,b) (int)(a##e##b)

int main()
{
        printf(STR(abcde));
        printf("\n");
        printf("%d\n",CONS(2,3));

        return 0;
}
程序的输出是:
abcde
2000

原因:
我们使用#把宏参数变为一个字符串。用##把俩个宏参数贴合在一起。CONS(2,3)的值实际上是2e3。但是要求输出十进制。转换成就为2000
页: [1]
查看完整版本: 宏参数的连接