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 巨...