【发布时间】:2020-03-06 11:28:06
【问题描述】:
我知道当我想将 C 代码链接为 C++ 中的 C 代码时,我应该使用 extern "C"。但是使用以下代码:
/* file.h */
some (void)
{
return 10;
}
extern "C"
{
#include "file.h"
}
#include <iostream>
int main (void)
{
std::cout << some() << std::endl;
}
我得到这个编译时错误:
C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持默认整数。
我该如何处理?
我在MS-Windows10 上使用MSVC2017。
编辑:我知道大多数都用显式返回类型声明函数,但我应该使用USBPcap 和 USBPcap 声明一些类似的函数。我如何在我自己的 C++ 程序中使用它?
【问题讨论】:
-
您的 C 代码不是 MSVC2017 编译器所期望的有效 C99。
-
some (void)缺少返回类型。 -
错误不是自己解释的吗?以正确的方式编程 - 不要保存键盘。
-
如果该库声明了这样的函数 - 向项目提交错误以进行更正。或者更好的是——提交一个为他们解决问题的拉取请求。