我有一堆来自供应商工具的生成函数需要由我定义。 由于这些函数中的每一个的内部功能都完全相同,我想我可以使用宏来让我的生活更轻松。
这是违规警告:
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)
...等等
关于为什么会发生这种情况有什么想法吗?
最佳答案
去掉第二个##
,它没有用(你不想做function_name(
)的一个符号。
关于c - 无效的预处理器 token 警告消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2371494/