#ifndef 標識1 //判斷"標識1"是否定義,如果被定義則返回假,如果沒有被定義則返回真。
/**********************************/
語句1 #ifndef 標識1
語句2 #define 標識1
語句3 #endif
語句4 ……
語句5 ……
該段**意思是:如果標識1沒有被定義,則重定義標示1,即執行語句2、語句3;如果標識1已經被定義,則直接跳過語句2、語句3,直接執行語句4、語句5、……
/***********************************/
備註:#ifndef 和 #endif 要一起使用,如果丟失#endif,可能會報錯。
千萬不要忽略了
標頭檔案中的#ifndef,這是乙個很關鍵的東西。比如你有兩個c檔案,這兩個c檔案都include了同乙個
標頭檔案。而編譯時,這兩個c檔案要一同編譯成乙個可執行檔案,於是問題來了,大量的宣告衝突。
例如要編寫標頭檔案test.h
在標頭檔案開頭寫上兩行:
#ifndef _test_h
#define _test_h//一般是檔名的大寫 標頭檔案結尾寫上一行:
#endif
這樣乙個工程檔案裡同時包含兩個test.h時,就不會出現重定義的錯誤了。
分析:當第一次包含test.h時,由於沒有定義_test_h,條件為真,這樣就會包含(執行)#ifndef _test_h和
#endif之間的**,當第二次包含test.h時前面一次已經定義了_test_h,條件為假,#ifndef _test_h和
#endif之間的**也就不會再次被包含,這樣就避免了重定義了.
還是把頭檔案的內容都放在#ifndef和#endif中吧。不管你的
標頭檔案會不會被多個檔案引用,你都要加上這個。一般格式是這樣的:
#ifndef 《標識》
#define 《標識》
......
......
#endif
《標識》在理論上來說可以是自由命名的,但每個
標頭檔案的這個「標識」都應該是唯一的。標識的命名規則一般是
頭檔名全大寫,前面加下劃線,並把檔名中的「.」也變成下劃線,如:
stdio.h
#ifndef _stdio_h
#define _stdio_h
......
#endif
ifndef 摘自百度百科
ifndef 標識1 判斷 標識1 是否定義,如果被定義則返回假,如果沒有被定義則返回真。語句1 ifndef 標識1 語句2 define 標識1 語句3 endif 語句4 語句5 該段 意思是 如果標識1沒有被定義,則重定義標示1,即執行語句2 語句3 如果標識1已經被定義,則直接跳過語句2 ...
linux ifconfig 摘自百度百科)
ifconfig 網路裝置 down up allmulti arp promisc add 位址 del 位址 硬體位址 media 網路媒介型別 mem start 記憶體位址 metric 數目 mtu 位元組 netmask 子網掩碼 tunnel 位址 broadcast 位址 point...
nmap 摘自百度百科
工具包。功能 其基本功能有三個 其次是掃瞄 主機埠,嗅探 所提供的網路服務 還可以推斷主機所用的作業系統 nmap可用於掃瞄僅有兩個節點的lan,直至500個節點以上的網路。nmap 還允許使用者定製掃瞄技巧。通常,乙個簡單的使用icmp協議 的ping操作可以滿足一般需求 也可以深入探測 udp或...