在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代码”?
答
感谢您的回复!
我的问题是我没有包含所有需要的头文件/以正确的顺序。 我全部设置。
粘贴代码时,选择它并按二进制数字按钮。这将缩进行并生成格式化的代码。请考虑添加更多关于您包含哪些标头的信息,错误消息中的确切错误(错误消息中的')'之前的内容) – 2010-05-26 14:19:50
欢迎来到SO!你需要展示更多,因为通常那些卫兵是足够的。显示它正在抱怨的行号,也许会得到一个较小的.cpp文件来显示问题。 – 2010-05-26 14:20:43
您正在使用的C头可能会用作C++关键字的标识符,该关键字不是C中的关键字。但是如果作者放入'extern“C”块,他可能足够聪明以避免这种情况。这个问题需要显示更多相关的代码,否则你会得到的只是猜测。 – 2010-05-26 14:23:43