关于VC++预处理指令#和##

#不管传入什么参数,都会转换成字符串

##不管是什么类型,都会连接到一起,但要求传入的参数应该是同一种类型

eg.

#include <stdio.h>
int main()
{
#define PASTE(a,b,c) (#a#b#c)
    printf("%s/n", PASTE(7,8,9));
#define NUM(a,b,c) (a##b##c)
    printf("%d/n", NUM(1,2,3));
#define STR(a,b,c) (a##b##c)
    printf("%s/n", STR("a","b","c"));
    return 0;
}

本文为“技术点滴”的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注