看板 C_and_CPP 關於我們 聯絡資訊
a.h --------------------- Type A; void func(); --------------------- a.cpp --------------------- #include"a.h" void func(){ } void other_func(); --------------------- main.cpp --------------------- #include"a.h" int main(){ . func(); . } --------------------- 不好意思,想請教前輩一些問題 小弟在編譯上面的程式時,出現了multiple definition的錯誤(在main.cpp) 然而我在main.cpp中並沒有額外使用到A這個變數,A這個變數只有a.cpp中的函數會用到 然後我把Type A移到a.cpp卻可以順利的編譯 小弟對compiler運作的方式不是很清楚 麻煩前輩不吝指正 謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.217.27
jazz97925:在板上搜尋 重複定義 就有答案了 03/03 16:13
legnaleurc:extern 03/03 16:43
apenptt:謝謝j大,可是還是不懂為何變數宣告不能放在.h檔 有前輩可 03/03 22:53
apenptt:以解釋一下其中的奧妙嗎 03/03 22:55
※ 編輯: apenptt 來自: 140.113.217.27 (03/03 22:57)
legnaleurc:和linker有關 寫在header會讓同一symbol出現在不同的 03/03 22:57
legnaleurc:compile unit 03/03 22:57
tinlans:先分清楚宣告和定義的差別可能會比較有幫助。 03/04 02:20