英翻塞爾維亞文#else /* ABC */
#endif /* ABC */
meow(); /* just meow him. */
假如之前 compiler 曾碰到 #define ABC 的話, 那compiler會去讀meow那段code, 假如沒有, 則是讀bark那段 翻譯公司 固然, 每個compiler城市有自定的macro來辨識compiler本身名稱版本啦 翻譯公司 OS種類版本啦, 仍是函式庫版本等等.
...bark...
#if 0
bark(); /* just bark you. */
meow(); /* just meow you. */
再回到 /* ... */ 翻譯問題, 其實 /* */ 很討厭說, 常常想暫時不要一段以下的程式碼:
*/
在上個典範榜樣裡 翻譯公司 最主要的反而是後面 翻譯 /* ABC */ 了, 因為沒有它其實沒什麼大不了 翻譯, 可是人在看的時刻, 沒有它, 到時一堆#endif跟#else雜在一起, 不會廢掉也會傻掉. 養成註解的好習慣照樣很重要呢!
改成醬子看看...
meow(); /* just meow him. */
#define __HEADER_H__
這個是為了怕重覆 include 的狀態發生, 假設 a.h 裡 include 了 b.h 而 c.c 這個檔裡 include a.h 跟 b.h 翻譯公司 若是沒有#ifndef 來攔住, 跟一個#define來標示出已include 過了, 那麼content裡面的東西都邑重複界說喔, 反複界說固然沒什麼大不了 翻譯 翻譯公司 可是compiler很笨, 它只分得出來重複界說 翻譯公司 分不出來值都是一樣的, 所以只好如許子讓compiler以資鑒識囉.
...content...
bark(); /* just bark you. */
最常見 翻譯用法是
#ifdef ABC
如許子compiler必然不會理你 翻譯 翻譯公司 還會有error唷! 這時候 #if 就有用了, 來吧! 改成
...meow...
/*
#ifndef __HEADER_H__
#endif /* 0 */
#endif /* __HEADER_H__ */
嘿嘿, 就沒事囉. 什麼緣由啊? /* 會去找下一個 */ 來竣事, 而還沒 /* 的 */ 都邑被視成是有問題的, 回頭看看前前一段code有沒有問題吧. :)
回到題目的主題 翻譯公司 #ifndef 跟header file有什麼關係, 常看一些compiler的標準header file的人就知道 翻譯公司 它們的header file 翻譯頭尾城市像以下
bark(); /* just bark you. */
本篇文章引用自此: http://mypaper.pchome.com.tw/joshuaprog/post/173590有關翻譯的問題歡迎諮詢華頓翻譯社