我想使用宏来轻松更改函数声明,这就是我现在所拥有的:
#define MYDECLARATION(name) void name (void)
当我调用 MYDECLARATION(my_thread); 我收到一个错误:
标识符列表参数只能在函数定义中使用。
我尝试像这样使用##:
#define MYDECLARATION(name) void ##name (void)
但我很确定我会得到 :voidmythread (void)
在我的代码中。你知道怎么做吗?
如果你知道一些关于宏的很好的教程,我也很感兴趣。
回应位掩码评论:
我正在使用 KEIL 编译器,然后我的线程工作如下:
#define MYDECLARATION(name) __task void name(void)
我的电话:
MYDECLARATION(Mythread);
我的定义:
__task void Mythread(void)
{
//...
}
新测试:
#define RET_TEST __task void
#define PARAMETER void
RET_TEST MYDECLARATION(PARAMETER);
这是有效的......所以我想这是在一个不起作用的函数名中使用宏参数的事实......