在C++中包含非标准C头文件

问题描述:

我需要在我的C++代码中包含几个c头文件(非标准头文件)以供gcc编译。 C头(foo.h中)具有用于支持:在C++中包含非标准C头文件

#ifdef __cplusplus 
extern "C" { 
#endif 

并且类似地在端部为}。 C++代码包含“foo.h” 我相信我应该能够包含头文件(foo.h)并创建在.h文件中定义的结构实例。

我无法编译源代码。看起来编译器将c代码看作是C++代码。我看到错误如

error: expected constructor, destructor or type conversion before "("

我做错了什么?我采取了建议从: http://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html

我还需要做什么,告诉c + +编译器“期望和编译为c代码”?

+0

粘贴代码时,选择它并按二进制数字按钮。这将缩进行并生成格式化的代码。请考虑添加更多关于您包含哪些标头的信息,错误消息中的确切错误(错误消息中的')'之前的内容) – 2010-05-26 14:19:50

+4

欢迎来到SO!你需要展示更多,因为通常那些卫兵是足够的。显示它正在抱怨的行号,也许会得到一个较小的.cpp文件来显示问题。 – 2010-05-26 14:20:43

+2

您正在使用的C头可能会用作C++关键字的标识符,该关键字不是C中的关键字。但是如果作者放入'extern“C”块,他可能足够聪明以避免这种情况。这个问题需要显示更多相关的代码,否则你会得到的只是猜测。 – 2010-05-26 14:23:43

感谢您的回复!

我的问题是我没有包含所有需要的头文件/以正确的顺序。 我全部设置。