易截截图软件、单文件、免安装、纯绿色、仅160KB

[c/c++互相包含困惑]c文件包含c++头文件

用.c文件去包含一个 cpp定义的头文件,结果报出类似以下的一大堆错误:
expected ';', ',' or ')' before '&' token
expected declaration specifiers or '...' before 'UsFileOpenMode'

情况是这样的:
有以下文件:
cfile.c
cppfile1.cpp
cppfile1.h
cppfile2.cpp

在cppfile2.cpp中 #include "cppfile1.h" 就完全正常,没有任何问题
但是如果在cfile.c中 #include "cppfile1.h" 就会报出以上那些错误

所以想请教:
是因为c++的头文件不能被 c文件包含么?
如果是这样,是因为 c编译器无法识别c++编译器标识的函数吗?

另外,引申出来的问题:
1. c++ 使用 c 的文件,需要在c的头文件里加 extern "C" {}
2. c 使用 c++的文件,是要在c++ 头文件和实现文件里 也加 extern "c" 吗?
  这样,其它 c++文件在使用这个 c++头文件时,ok吗?
3. 还有其它什么注意事项,也请多多指点 多谢!


等别人回答我的问题,顺便把我知道的说下吧.

我所碰到的c\c++混编,C++头文件不能被C文件包含.

1.是.
2.简单的方法是,在cpp文件中,把#include 的C头文件用Extern "c" {}括起来就行了.或者在整个C头文件中.
不会受到影响.

3.其它的貌似没有了...碰到再问吧.

c++头文件里难免有些类、引用等等c语言里面没有的东西,把他们包含到c文件里,gcc可处理不了。
比如楼主提到的 expected ';', ',' or ')' before '&&


相关问答:

用C或C++如何编写求解3D魔方程序 - C/C++ / C++ 语言

请问用C或C++如何编写求解3D魔方的程序,该从何开始?
谢谢各位,帮忙提点建议吧。

http://www.mofang.net/code/176/182/6581.html

我只能突破60秒!唉。

我刚过40秒

google的android中有个OpenGL ES + ......

急!C parser如何实现“__builtin_va_list”

最近在看一个用bison实现的C parser,OS是opensolaris。当用它来解析一个简单的hello.c时,出现“/usr/include/sys/va_list.h: parse error before __gnuc_va_list”。打开文件va_list.h后发现这样一行“typedef __bu ......

c#控制Mysql 实现自动删除功能 - .NET技术 / C#

有个winform程序,使用c#+mysql,需要在一个窗体设置mysql自动删除功能,包括自动删除多少天之前的数据以及是否开启自动删除功能,我程序退出后,还怎么控制Mysql自己删除啊?是不是要用mysql的event来实现?c#可以调用mysq ......

C 程序问题(四) - C/C++ / C语言

#include "stdio.h"
int main()
{
  char *ch(char *, char *);
  char str1[]="I am glad to meet you!";
  char str2[]="Welcom to study C!";
&nb ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号