[問題] 關於ifndef

看板C_and_CPP (C/C++)作者時間14年前 (2011/07/27 16:07), 編輯推噓2(209)
留言11則, 7人參與, 最新討論串1/1
我知道可以用ifndef避免header檔被重複包含 但如果假設有a和b兩個header ex:a.h需要用到b.h的變數 b.h需要用到a.h的變數 要怎麼用ifndef來避免compiler 的錯誤 麻煩了 謝謝 sorry打錯了 是變數 a.h: #include "b.h" #ifndef test3_a_h #define test3_a_h int a; a=b*2 #endif b.h: #include "a.h" #ifndef test3_b_h #define test3_b_h int b; b=a*2; #endif 那如果不是marco(例如上面的舉例) 也是無解嗎? 這是我最近考試 遇到的問題 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.169.133.175

07/27 16:38, , 1F
參數?
07/27 16:38, 1F

07/27 16:40, , 2F
「參數」是變數(int/float..etc)還是 macro ?
07/27 16:40, 2F

07/27 16:46, , 3F
Why not give an example...
07/27 16:46, 3F

07/27 16:47, , 4F
對吼~ 板規二 ~~
07/27 16:47, 4F
※ 編輯: lovemindy 來自: 118.169.133.175 (07/27 18:04)

07/27 18:34, , 5F
如果你所謂的"變數"是 macro 那無解
07/27 18:34, 5F

07/27 18:34, , 6F
因為兩者必然有一個在前面
07/27 18:34, 6F

07/27 18:35, , 7F
你該想的是為什麼你會需要互相引用 macro
07/27 18:35, 7F
※ 編輯: lovemindy 來自: 118.169.133.175 (07/27 19:31)

07/27 19:50, , 8F
這是循環相依,代表你的設計出問題啦
07/27 19:50, 8F

07/27 21:26, , 9F
http://codepad.org/fDQ77EnH <---加個tmp變數
07/27 21:26, 9F

07/27 21:41, , 10F
b.h的#ifdef test3_a_h的a改成b.其實這例子有點怪
07/27 21:41, 10F

07/27 23:56, , 11F
感謝樓上 我了解了
07/27 23:56, 11F
文章代碼(AID): #1EByTHYf (C_and_CPP)
文章代碼(AID): #1EByTHYf (C_and_CPP)