如何定义函数声明宏

时间:2015-12-13 15:23:32

标签: c

我有以下问题:我需要定义一个必须使用的宏而不是使用常规的C表达式。

例如我想要这个:

THREAD(FIRST) 

......将由此替换

void THREAD_FIRST(void) 

...代码中。

我试过这个:

#define THREAD(x)    void THREAD_#x(void)

......但它没有用。也许不允许void之后的空格。任何想法如何解决?

1 个答案:

答案 0 :(得分:3)

您正在使用错误的预处理程序运算符,要使用##进行令牌粘贴,而不是#

#define THREAD(x)    void THREAD_##x (void)