我需要由供应商的工具生成一堆生成的函数。 由于每个功能的内部功能完全相同,我想我可以使用宏来让我的生活更轻松。
以下是违规警告:
pasting "<function_name>" and "(" does not give a valid preprocessing token
现在,我按如下方式定义我的宏:
#define HANDLE_FUNCTION(x) \
void <function_prefix>_ ## x ## (void) \
{ \
x ## _Flag = TRUE; \
}
在我的代码中,我写道:
HANDLE_FUNCTION(fn1)
HANDLE_FUNCTION(fn2)
......等等
有关为何发生这种情况的任何想法?
答案 0 :(得分:5)
删除第二个##
,它没用(你不想制作一个function_name(
的符号。)