gcc 4.4.1
我正在维护某人的代码,遇到了一些我不理解的问题。
#define RES_API(name, func) name##_##func
有人能解释一下吗?
非常感谢。
gcc 4.4.1
我正在维护某人的代码,遇到了一些我不理解的问题。
#define RES_API(name, func) name##_##func
有人能解释一下吗?
非常感谢。
##
运算符将两个标记连接在一起。在您的情况下,name
与下划线相连,然后再与 func
相连。RES_API(aName, aFunc)
的结果为 aName_aFunc
。#define RES_API(name, func) name##::##func
您现在可以使用一种通用的方式在C接口和C++之间进行切换。
我知道你已经得到了答案,但是C-FAQ上有一些很好的信息,解释了很多关于C预处理器的奇技淫巧。
使用这个宏,你可以用RES_API(OBJ, DoSomething)
代替OBJ_DoSomething
。个人认为这有点傻。