【问题标题】:Invalid preprocessor token warning message无效的预处理器令牌警告消息
【发布时间】:2010-03-03 13:17:20
【问题描述】:

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

这是有问题的警告:

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)

...等等

对为什么会发生这种情况有任何想法吗?

【问题讨论】:

    标签: c macros c-preprocessor stringification


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-13
      • 2012-12-10
      • 2012-06-29
      • 1970-01-01
      • 2012-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多