推 soheadsome:#ifndef #define 07/24 01:57
→ Killercat:keyword : Include Guard <==查一下這個關鍵字 07/24 01:59
→ Killercat:另外別學壞用#pragma once, 這個M$ only 別用這個 07/24 01:59
→ Killercat:....剛查了一下 GCC跟clang居然支援了 真詭異 07/24 02:00
→ scwg:queue.c includes queue.h, which includes node.h 怎麼會 07/24 02:20
→ scwg:看不到 DATATYPE 呢? 除非有奇怪的 preprocessor directives 07/24 02:21
→ scwg:不然 #include 只是單純的內文展開, 多重 include 會統統拉到 07/24 02:23
→ scwg:最上層 07/24 02:23
→ Killercat:誒,我發現我誤解元po的問題了,請跳過我 XD 07/24 02:38
推 legendmtg:#pragma once應該是各大編譯器都有支援了 07/24 09:53
→ legendmtg:而且效率似乎比較好 所以也有人是建議使用 07/24 09:54
→ azureblaze:once沒進標準是因為"同個檔案"在某些平台難以定義 07/24 10:10
→ azureblaze:inclusion guard若編譯器有作特別處理效率其實差不多 07/24 10:12
→ Killercat:其實gcc -E出來應該結果都一樣...會有效能差嘛 07/24 11:23
→ Killercat:別告訴我gcc expand macros會多花幾個毫秒... XD 07/24 11:23
→ azureblaze:once可以連開檔都省略掉 檔案夠多會差一點點XD 07/24 11:27
其實我是gcc+emacs Elipse-cdt 都有用 ((但是Eclpise 是用gcc吧?
我寫這個是在Eclipse-cdt下 然後在queue.c會有Syntax error. 不給Complier
所以如果我不用Eclipse 直接gcc那些檔案會過嗎?
現在電腦不在身邊沒法測試
※ 編輯: qas612820704 (125.230.84.78), 07/25/2014 00:45:30
→ scwg:不管是 Eclipse 還是去 command line 用 gcc, 出錯想找問題 07/25 03:59
→ scwg:一定得看錯誤訊息. 真的是DATATYPE的問題嗎? 還是哪裡少分號? 07/25 04:00
= =!!問題還真的不是出在DATATYPEGP身上 對不起我犯傻了
結果還真的是有地方少分號... 不過但是套出些關鍵字學到些東西 謝謝!
※ 編輯: qas612820704 (140.120.19.2), 07/25/2014 12:43:35