1

我有一堆来自供应商工具的生成函数需要我定义。由于这些功能中的每一个的内部功能都完全相同,我想我可以使用宏来让我的生活更轻松。

这是有问题的警告:

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)

...等等

关于为什么会发生这种情况的任何想法?

4

1 回答 1

5

删除第二个##,它没有用(你不想做一个符号function_name()。

于 2010-03-03T13:21:41.913 回答