编译一些具有函数原型的遗留代码Ac
void somefun(...)
Run Code Online (Sandbox Code Playgroud)
gcc 4.1.2总是说出错误
error: ISO C requires a named argument before ...
Run Code Online (Sandbox Code Playgroud)
但我无法修改代码,所以我应该使用什么C dialet选项让GCC编译这段代码?
gcc -c A.c ????
Run Code Online (Sandbox Code Playgroud)
我认为 GCC 中的任何 C 方言都不接受这一点,但 G++ 接受。您可以做的是将函数定义放在一个extern "C" {}块中,并编译包含它的模块g++(假设它也是一个有效的 C++ 函数)。
然后您必须在 C 中使用(K&R 风格)声明它void somefun()。
g++不过,这也需要链接。
如果 C++ 链接不是您想要的,那么您应该将该函数更改为不带参数并以 K&R 风格声明它。
| 归档时间: |
|
| 查看次数: |
1086 次 |
| 最近记录: |