2013-02-11 26 views
-1

我遇到了由其他人編寫的C++頭文件,它有一些我從未見過的編碼約定。下面的代碼是否在頭文件中有效,如果是的話,這個技術叫做什麼?爲什麼使用它?唯一標頭文件代碼:是否有效

#if 0 
    int test() 
     return values = 0 
         = 1 

#endif 

請注意如何theres沒有分號,沒有大括號和該值是沒有定義在頭文件中的任何位置。

+1

嗯,它是「評論」出來,所以確定它是有效的。 – chris 2013-02-11 03:58:57

+0

它在哪裏註釋掉?我沒有看到任何註釋字符(//或/ *) – 2013-02-11 03:59:45

+0

'#if 0'menas註釋掉,編譯器忽略這樣的代碼 – billz 2013-02-11 04:00:27

回答

3

它被稱爲評論代碼。
#if 0評論下面的所有代碼,直到遇到#endif

也許有人開始使用一些僞代碼,然後將其留給未來。

良好閱讀:
#IF ... #ENDIF Preprocessor Directive

+0

爲什麼程序員不使用標準註釋,即'/ * * /'。這是做評論的舊方式,即使用預編譯器命令? – 2013-02-11 04:00:35

+1

@JakeM這是評論的道德等價物。 #if有條件地包括它的主體,並且由於條件是'0'..那麼是的,這是一條評論。 – FatalError 2013-02-11 04:01:25

+0

@JakeM:內聯答案的鏈接應該會幫助你更好地理解。 – 2013-02-11 04:02:38

1

此代碼永遠不會執行。 #if 0表示,當0爲真時,將以下代碼塊放入最終文件。由於0總是錯誤的,所以這段代碼被有效地註釋掉了。

int main(){ 
    #if 0 
    lfaksjdf;lakjf;alskdjfa;lsdjf 
    #endif 
    return 0; 
} 

是完全合法的。

0
#if 0 
    anything you want 
#endif 

'#if 0'是註釋掉代碼的一種方式。它告訴預處理器在#if和#endif之間不包含任何內容。

所以這只是一些僞代碼,不一定有效。

相關問題