[問題] c++ 標頭檔的 #ifndef xxx 用意
在網路上找資料時 看到下面這個範例
// ------------------
#ifndef __INCvxWorksh
#define __INCvxWorksh
// ------------------
#ifdef __cplusplus
extern "C" {
#endif
/*...*/
#ifdef __cplusplus
}
#endif
#endif /* __INCvxWorksh */
其中我自己在看code的時候也常常會看到
但是不太懂它的意義 有看到如下說明
#ifndef __INCvxWorksh、#define __INCvxWorksh、#endif” 的作用是
防止該標頭檔被重複引用。
但是還是不懂 因為不管 __INCvxWorksh 有沒有被 def
下面的程式碼應該都會被編譯一次 那到底這樣寫有什麼用
或在什麼情況下有用 有例子嗎?
謝謝大家
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 119.14.173.206
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1449064395.A.D5D.html
推
12/02 22:04, , 1F
12/02 22:04, 1F
→
12/02 22:05, , 2F
12/02 22:05, 2F
→
12/02 22:05, , 3F
12/02 22:05, 3F
→
12/02 22:05, , 4F
12/02 22:05, 4F
→
12/02 22:05, , 5F
12/02 22:05, 5F
→
12/02 22:06, , 6F
12/02 22:06, 6F
→
12/02 22:10, , 7F
12/02 22:10, 7F
→
12/02 22:21, , 8F
12/02 22:21, 8F
→
12/02 23:25, , 9F
12/02 23:25, 9F
推
12/03 00:32, , 10F
12/03 00:32, 10F
→
12/03 00:33, , 11F
12/03 00:33, 11F
推
12/03 00:34, , 12F
12/03 00:34, 12F
→
12/03 00:35, , 13F
12/03 00:35, 13F
→
12/03 06:00, , 14F
12/03 06:00, 14F
推
12/03 08:37, , 15F
12/03 08:37, 15F
推
12/08 13:14, , 16F
12/08 13:14, 16F