當前位置:首頁 » 編程軟體 » c文件調用cpp函數編譯報錯

c文件調用cpp函數編譯報錯

發布時間: 2022-08-02 09:53:13

『壹』 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);
}

熱點內容
命令行訪問ftp 發布:2025-02-09 14:10:53 瀏覽:62
加密文件模板 發布:2025-02-09 14:10:13 瀏覽:223
翁虹ftp 發布:2025-02-09 14:02:54 瀏覽:132
java加密對稱 發布:2025-02-09 13:55:49 瀏覽:413
坤詡錢包為什麼沒有安卓版 發布:2025-02-09 13:50:49 瀏覽:300
存儲過程性能優化 發布:2025-02-09 13:42:59 瀏覽:730
源碼失竊 發布:2025-02-09 13:38:34 瀏覽:528
自動瀏覽器腳本 發布:2025-02-09 13:37:00 瀏覽:142
易語言問道源碼 發布:2025-02-09 12:59:03 瀏覽:664
ip和伺服器有關嗎 發布:2025-02-09 12:51:26 瀏覽:953