c文件调用cpp函数编译报错
‘壹’ c语言调用C++函数出错
哈哈,我看出来了,你是用vc编译的吧,看dos.h头文件,这是tc编译器的头文件,支持的暂停为delay()函数,如果用vc编译,那么就是用的windows环境下的32位编程,所以就应该加入windows.h这个头文件,告诉vc编译器这个名字空间,错误提示是由于你的sleep()函数中s要大写,改成大写就能编译通过了。
希望对你有所帮助。
‘贰’ c语言使用头文件调用其他文件函数时时链接错误,求指教~~
我用vc2010测试了你的代码,没有连接问题,完全正确。
但是,如果从工程中,将ds3_seqStack2.cpp移除,再Build,将得到和你一样的链接错误。
因此,猜测你是没有将ds3_seqStack2.cpp加入工程。
‘叁’ 一个用C语言写成的Cpp文件,复制代码在C编译环境中运行时出现error,请求帮助
void creatTree(Linklist &L,Tree &T) 这里的&表示引用实参变量,是C++的专例,C不支持!所以会报错!
你若想移植成C语言,这里只能定义成指针,然后代码中相应的使用该变量的地方全要进行调整。
‘肆’ c语言编译错误
因为你的a[6][6]这个数组没有初始化,也没有输入值,所以内存中就没有a数组的内容的地址,所以一运行就会出错啊,访问了不该访问的内存,所以就报错了。
‘伍’ 源代码中有cpp进行编译,出现fatal error C1083: 无法打开包括文件:“c1.h”: No such file or directory
那肯定是有某个文件调用了这个C1.h呗,但是这个文件不存在。
就报错了。
‘陆’ .CPP文件编译no error,执行时出错
这种情况你试试删除工程文件夹下的debug文件夹下的所有文件,然后重新编译
如果不行,
那就是你
的
源程序
有问题,仔细看看错误列表中函数的定义,变量的定义,还有运行库的加载是否正确等等。
‘柒’ Help.C文件如何调用.CPP文件中的函数
因为C++和C是两种完全不同的编译链接处理方式,所以如果直接在C++里面调用C函数,这样链接起来是通不过的,会报链接错误,找不到函数体,所以要在C++文件里面显示声明以下一些函数是C写的,要用C的方式来处理,这个在C++设计初期就考虑到兼容性的问题,所以是可以解决的。 比如用C写了A.h和A.c这两个文件,里面包括了void A_app(int)这样的函数,那么在需要调用这个函数的CPP文件里面,就需要显示声明一下了。 1.引用头文件前需要加上 extern “C”,如果引用多个,那么就如下所示 extern “C” { #include “A.h” #include “B.h” #include “C.h” #include “D.h” }; 然后在调用这些函数之前,需要将函数也全部声明一遍。 2.C++调用C函数的方法,将用到的函数全部重新声明一遍 extern “C” { extern void A_app(int); extern void B_app(int); extern void C_app(int); extern void D_app(int); };
‘捌’ 关于gcc编译器,在控制台写*.cpp编译多个cpp会报错
根据报错信息,是因为“g++ -c *.cpp”这条指令的通配符串“*.cpp”没有展开所致。
根据验证,当执行“g++ -c *.cpp”这条指令时,当前目录比如testcomb下没有后缀名为cpp的文件,“*.cpp”就不会展开,就会报错。
---
如上图所示,当前目录下没有.c文件,报错与问题中的一致。
‘玖’ *c和*cpp文件编译问题
如何你将改的代码依然放在扩展名为cpp的文件里,你在VC中选择将这个文件用c来编译。
重载的函数起不同的名字,C++中的inline函数一般是在头文件中定义的,在转变为c应将它的定义放在源文件中,取消inline申明。
引用数据类型在c中是不存在的需要改为指针型。
在C语言中变量申明一般要放在函数的前面,而c++中可以放在使用的地方,需要改变后这些变量申明位置。
for(int i = 0; i < n; ++i)这是c++的语句,而在c中是不允许的,需要
int i
...
for(i = 0; i < n; ++i)
‘拾’ visualc++6.0中设计的函数在.c可以运行和而在.cpp中会报错
#include<iostream.h>
#include<stdio.h>
#include<stdlib.h>
int gsd(int a,int b);//函数声明要放在调用之前,否则找不到函数原型,会报错
int main()
{
int a,b,c;
scanf("%d %d",&a,&b);
c=gsd(a,b);
printf("最大公约数=%d\n",c);
system("pause");
return 0;
}
int gsd(int a,int b)
{
if(b==0)
return a;
return gsd(b,a%b);
}