C語言工程連線問題,C語言工程檔案連線問題

2022-09-17 15:55:02 字數 2372 閱讀 9667

1樓:zx放羊的星星

其實被採納的回答已經提供了解法,也幫到了提問者。

但是有些地方沒說清楚,覺得,有必要補充下。。。

首先,你想用的是工程檔案的方法;而你的源程式,是使用的檔案包含的方法。如果單獨執行a.cpp而不建立工程檔案,是可以執行的。

如果想改成工程檔案,其實很簡單:去掉原始檔1 前面部分的呼叫函式,在main函式最開頭加上對原始檔2、3中子函式的宣告。即改為:

原始檔1:

#include

void main()

後面原樣即可。當然,有種稍微簡便點的方法,即是採納中的 使用d.h——extern擴充套件變數使用範圍,可以減少定義變數,還可以使你的原始檔3簡化很多(原始檔2中計算過的數,在這裡就可以直接呼叫了)。

好了,差不多了,手打了這麼多還真沒幾次。。。

2樓:花花浪客

建議你b1.cpp和c1.cpp改名為b1.h與c1.h

c語言工程檔案連線出錯

3樓:匿名使用者

首先需要知道,編譯器在編譯的時候是按照原始檔為單位進行編譯的,標頭檔案不參與編譯。並且編譯的時候,原始檔之間互相不知道對方的存在。在鏈結階段,進行一些符號的查詢等等。

另外,乙個函式(或變數)可以宣告多次,但只能定義一次。否則就出現了重複定義的錯誤。這裡的問題就是查詢到了兩個judge()定義。

現在按照樓主的寫法,judge()在judge.h 宣告並定義。雖然judge.

hz不參與編譯,但是此檔案被judge.cpp和main.cpp兩個標頭檔案所包含(相當於原始檔複製了那個標頭檔案的內容放在自己的空間中),編譯器在編譯的時候在judge.

obj和main.obj中同時發現了judge()的定義,所以就出錯了。

所以按照樓上的寫法就沒有問題了,而且你也應該知道為什麼沒有問題了吧。

4樓:德昂當

//judge.h

void judge(char ch);

//judge.cpp

#include

void judge(char ch)

//main.cpp

#include < stdio.h >

#include "judge.h"

void main( )

關於c語言cpp檔案和工程檔案的問題

5樓:何渡忘川

直觀,結構化,以後維護方便,便於修改

公司的專案都是分工完成的,比如一人編寫乙個cpp檔案

c語言工程檔案問題

6樓:匿名使用者

樓上的可能沒有仔細看程式,因為陣列m已經在ex.c中定義了;

而且在stora.c和storb.c中加上「extern int m[10];」後陣列m將只是區域性變數,其作用域僅僅是當前檔案;

另外注意一下:你在標頭檔案中宣告的函式「readin」在ex.c中第5行寫成了「readim」;

另外注意下c語言中大小寫區分的問題;

你的陣列m,是在ex.c中定義的,但是卻在後來的其他外部檔案中使用,所以編譯器會報錯;

至於你說的編譯可以通過是部分檔案可以通過;

「undefined symbol 'm'」,意思是「未定義的符號m」;

解決辦法:將ex.c中的「int m[10]」改為「extern int m[10]」;

抱歉檔案太多沒有幫你親自測試,你試試吧。

7樓:匿名使用者

把int m[10];放在模組外面。也就是定義成外部變數。

c語言中工程與檔案的關係

8樓:

在c語言中乙個工程可以包含多個檔案,但這多個檔案中,只能有乙個檔案中含有main函式即主函式,可以用#include"檔名"將其餘檔案包含進來。

9樓:看灰過來了

乙個工程可以包含多個檔案,但這多個檔案中,只能有乙個檔案中含有main函式

10樓:

乙個工程可以包含多個檔案,

c語言 多專案程式 檔案呼叫問題

11樓:go浪人生

dll檔案是庫檔案,不能和exe同時編譯。你可以先建立乙個工程用來編譯這個庫檔案,然後建立乙個exe工程,工程引用這個庫檔案和這個庫檔案的標頭檔案。就是說,你先在應用程式型別那選dll,把**寫好然後就可以編譯乙個包含有print()方法的庫檔案,然後再建乙個exe工程。

12樓:

在project屬性裡新增對tic.lib的引用

C語言問題,C語言問題

符合,相當於一個字元,ascii字元可以直接轉成short整型數字。101 不符合,這是一個字串,不能作為常數。不符合,因為 會對雙引號轉義,找不到另一個雙引號。會出錯。而且就算是 也不符合,因為編譯器會把它理解成一個字串,而非單個字元。e3不符合。019不符合,0開頭代表8進位制數,不能出現9。0...

C語言問題,c語言問題

這是值傳遞,值傳遞的過程的是,系統會給你的實參的值進行乙個拷貝,把這個拷貝傳遞給形式引數。因為是拷貝,所以實參裡頭的值是不會改變的。如果是位址傳遞就不一樣了。補充 你可以定義乙個指標,這個指標指向主函式的結構體。然後子函式的形參也定義乙個指向結構提的指標。這樣就是位址傳遞了。樓主還是好好花點時間看看...

c語言問題,求助,C語言問題,求助!!!

這種問題用哈夫曼樹的逆向思想就可以解決了,所以我建議還是自己按這思想好好研究一下。自食其力。c語言問題 因為 define s a p a a 定義後 是直接替換 運算過程是這樣的 3 3 5 3 5 所以是29 弱勢這樣定義的 p a a 結果就是192 3 3 5 3 5 9 15 5 29 巨...