2012-01-18 33 views
0

您好每一個我想問一個關於包括用C programming.I警衛問題知道有目的,但在一些代碼我已經看到了「1」寫的#define後像包括用C衛隊語法

#ifndef MYFILE_H 
#define MYFILE_H 1 

這個「1」的目的是什麼?有必要嗎 ? 謝謝

回答

1

如果MYFILE_H宏未在代碼的其他地方使用,則不需要。

如果有#ifdef#ifndef指令像這裏其他地方使用:

#ifdef MYFILE_H 

那麼1沒有在宏定義 -

,但如果它在其他地方有#if指令中要求像這裏:

#if MYFILE_H 

然後1(或任何值!= 0)在宏定義中是必需的。

注意這些指令可以在源文件中使用,以驗證頭是否包含。

+0

好先生非常感謝 – mainajaved 2012-01-18 18:20:13

+0

爵士這是否也意味着我們可以使用相同的命名的宏都包括在同一時間保護和#if指令?並且只使用「1」或包含後衛中的任何數字來區分? – mainajaved 2012-01-18 18:26:35

+0

@mainajaved在源代碼中的預處理器指令可以用來檢查頭是否包含或僅僅通過檢查頭保護宏是否被定義。如果頭文件保護宏是用'1'定義的,則可以用'#ifdef'或'#if'指令進行檢查,否則只能用'#ifdef'指令進行檢查。 – ouah 2012-01-18 18:33:14

6

這不是必要的,#define MYFILE_H應該做的伎倆。 MYFILE_H定義爲(條件由ifndef測試)的事實與其值相分離。它可以是0,'',42等。

+0

好吧,先生,謝謝你 – mainajaved 2012-01-18 18:19:42

+0

先生你的意思是,只有#define MYFILE_H足以說明爲什麼這個「1」 – mainajaved 2012-01-18 18:22:08

+0

@mainajaved這是代碼的原始作者可以最好地回答的問題。我個人猜測 - 他/她認爲這是必要的。 – cnicutar 2012-01-18 18:22:52

1

就我所知,這是一種風格的東西。我認爲'1'是不必要的。它並沒有真正做任何事情。

+0

非常感謝主席先生 – mainajaved 2012-01-18 18:19:53