Re: [問題] #include 重複定義

看板C_and_CPP (C/C++)作者 (nahgnimiast)時間16年前 (2009/02/17 21:17), 編輯推噓4(4012)
留言16則, 5人參與, 最新討論串3/3 (看更多)
http://www.badongo.com/file/13429930 想請問一下上面的程式碼發生xxx已在yyy.obj內定義過了 的錯誤,但是應該不是之前的那種很明顯的重覆include 最近寫code想把檔案分開寫,常常會碰到上面的問題 ,但是卻不知道到底是哪裡有問題 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.167.97.135

02/17 21:45, , 1F
第一篇的推文就有,在每個.h加上#ifdef...
02/17 21:45, 1F

02/17 21:46, , 2F
sorry..你有加了
02/17 21:46, 2F

02/17 22:03, , 3F
我覺得你的include 要寫在#ifndef裡面而不是外面
02/17 22:03, 3F

02/17 22:45, , 4F
剛剛突然想到\我想我知道我錯在哪裡了
02/17 22:45, 4F

02/17 22:46, , 5F
我應該是因為變數宣告在.h, 造成重複定義
02/17 22:46, 5F

02/17 22:46, , 6F
但是個別cpp並沒有重複定義
02/17 22:46, 6F

02/17 22:47, , 7F
所以ifndef 的做法沒有作用
02/17 22:47, 7F

02/17 22:51, , 8F
ifdef只能幫忙檢查單一cpp, 多個cpp之間沒有關聯
02/17 22:51, 8F

02/17 22:52, , 9F
我覺得大概是這樣, 明天試試看
02/17 22:52, 9F

02/17 22:53, , 10F
是阿 不過我覺得你的 include確實要寫到裡面才行吧
02/17 22:53, 10F

02/17 23:13, , 11F
對寫在裡面比較對
02/17 23:13, 11F

02/18 08:51, , 12F
宣告和實作並不相同, .h是拿來放宣告, 不是實做
02/18 08:51, 12F

02/18 08:51, , 13F
inline function / template則不在此限
02/18 08:51, 13F

02/18 09:50, , 14F
未看先猜 extern / project setting
02/18 09:50, 14F

02/18 20:51, , 15F
我對宣告和實作, 有一些弄不清楚
02/18 20:51, 15F

02/18 20:52, , 16F
另外我那程式碼, 我變數宣告放到cpp就沒問題了
02/18 20:52, 16F
文章代碼(AID): #19chZfPN (C_and_CPP)
文章代碼(AID): #19chZfPN (C_and_CPP)