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);
}