【问题标题】:How to #define function-like macro of the function with variable arguments in C如何在C中使用可变参数#define函数的类函数宏
【发布时间】:2020-08-27 04:11:45
【问题描述】:

我有一个函数声明为:

int func(int a, int b, ...);

然后我想#define一个类似函数的宏为:

#define TEST(A,B) func(A,B,0)

但编译器总是抱怨:“错误:预期的声明说明符或'...',在数字常量之前”。

那么,我该如何消除这个错误呢?

【问题讨论】:

  • 这可能是因为编译器不知道如何在可变参数中表达0,因为没有可匹配的类型信息。试试(int) 0
  • @tadman,不行,不行。

标签: c macros


【解决方案1】:

确保在#define 语句之前定义函数(也可以导入),以便编译器将数据类型为 a 和 b。或者您也可以尝试将 a 和 b 定义为 (int) a。

【讨论】:

  • 糟糕,我知道为什么了。还有另一个声明int func(int a, int b);,就是这样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多