2012-05-31 33 views

回答

4

只是#define該標題中的一個符號並在以後使用#ifdef

header.h 
#define HAVE_IPV6 

some_file.c 
#ifdef HAVE_IPV6 
/* code */ 
#endif 
+0

還有使用#include的問題。我的程序並不知道頭文件是否存在,所以我需要在#include中進行某種檢查,否則當它沒有被定義時會出錯。 – user1429039

0

通常與C頭使用的一種技術被稱爲包括警衛。主要目的是防止頭文件的多重包含,但它們也可以用來滿足您的需要。

包含防護措施涉及在項目的每個頭文件中測試並有條件地設置預處理常量,這對於特定頭文件是唯一的。爲了達到這個目的,每個標題被包裝在一個#ifndef/#endif塊中。

例子:

MyHeader1.h

#ifndef MY_HEADER_1_H 
#define MY_HEADER_1_H 

// header file contents... 

#endif // MY_HEADER_1_H 

MyHeader2.h

#ifndef MY_HEADER_2_H 
#define MY_HEADER_2_H 

// header file contents... 

#endif // MY_HEADER_2_H 

在你的情況,你現在可以在你的代碼的其他地方測試列入任何特定的頭文件,例如#ifdef MY_HEADER_1_H

相關問題