我遇到了由其他人編寫的C++頭文件,它有一些我從未見過的編碼約定。下面的代碼是否在頭文件中有效,如果是的話,這個技術叫做什麼?爲什麼使用它?唯一標頭文件代碼:是否有效
#if 0
int test()
return values = 0
= 1
#endif
請注意如何theres沒有分號,沒有大括號和該值是沒有定義在頭文件中的任何位置。
我遇到了由其他人編寫的C++頭文件,它有一些我從未見過的編碼約定。下面的代碼是否在頭文件中有效,如果是的話,這個技術叫做什麼?爲什麼使用它?唯一標頭文件代碼:是否有效
#if 0
int test()
return values = 0
= 1
#endif
請注意如何theres沒有分號,沒有大括號和該值是沒有定義在頭文件中的任何位置。
它被稱爲評論代碼。
#if 0
評論下面的所有代碼,直到遇到#endif
。
也許有人開始使用一些僞代碼,然後將其留給未來。
爲什麼程序員不使用標準註釋,即'/ * * /'。這是做評論的舊方式,即使用預編譯器命令? – 2013-02-11 04:00:35
@JakeM這是評論的道德等價物。 #if有條件地包括它的主體,並且由於條件是'0'..那麼是的,這是一條評論。 – FatalError 2013-02-11 04:01:25
@JakeM:內聯答案的鏈接應該會幫助你更好地理解。 – 2013-02-11 04:02:38
此代碼永遠不會執行。 #if 0
表示,當0爲真時,將以下代碼塊放入最終文件。由於0總是錯誤的,所以這段代碼被有效地註釋掉了。
int main(){
#if 0
lfaksjdf;lakjf;alskdjfa;lsdjf
#endif
return 0;
}
是完全合法的。
#if 0
anything you want
#endif
'#if 0'是註釋掉代碼的一種方式。它告訴預處理器在#if和#endif之間不包含任何內容。
所以這只是一些僞代碼,不一定有效。
嗯,它是「評論」出來,所以確定它是有效的。 – chris 2013-02-11 03:58:57
它在哪裏註釋掉?我沒有看到任何註釋字符(//或/ *) – 2013-02-11 03:59:45
'#if 0'menas註釋掉,編譯器忽略這樣的代碼 – billz 2013-02-11 04:00:27