2014-01-22 65 views
2

我在GraphSketcher code(iOS和OSX)代碼採取一個高峯,我看到這一點:爲什麼任何人都想使用#if 0 &&東西?

#if 0 && defined(DEBUG_bungi) 
#endif 

我可能會接受#if 0as a way to comment code,但爲什麼做一個,如果條件永遠是假的?

that usage can be found here的一個例子,儘管在整個代碼中都使用了這個例子。

+4

因此,您可以在某處添加'#define 0 1'並破壞每個人的一天。 – bcrist

+1

您可以鏈接到回購中的特定文件以提供更多上下文。 – molbdnilo

+0

是我在代碼 –

回答

3

這仍然是一種臨時評論代碼的方法。

如果您想使用#if 0作爲評論恰好是預先存在的#if塊的代碼塊的方式,這似乎是一種明智的方法。您不會失去原有的歷史邏輯#if,只需在完成後刪除0 &&即可。

你也可以這樣寫:

#if 0 
#if defined(DEBUG_bungi) 
#endif 
#endif 

但是這是可以說是更令人討厭。

+0

只是禁用de DEBUG_bungi會更好嗎?在這種情況下,我只找到一種情況,他們做#ifdef DEBUG_bungi。其餘的總是有'#if 0 && defined(DEBUG_bungi)' –

+0

@TiagoAlmeida:也許這個宏由另一個更全面的宏控制,他們不想禁用整個事情,但_just_這個單獨的塊碼?如果不知道具體的代碼庫,就不可能合理化,但老實說,我不會浪費太多時間來思考它。 –

+0

@TiagoAlmeida只需要添加'0 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''以取消註釋,並且*不必添加相應的#endif *。它很聰明,真的很 – user3125280

0

已有#if的臨時評論代碼?一旦你想恢復代碼,你可以刪除0 &&並保留其餘部分。

這就是說,把這樣的東西提交給版本控制有點難看。

+0

爲什麼要刪除它?只要修改一個字符就可以了'如果1 && ...' – Brandin

+0

@Brandin:因爲它很醜?除非你認爲你將來想禁用這段代碼,在這種情況下可能需要額外的#define符號。 – gpvos

+0

我同意。但請記住,這裏的情況是,它的某個人在整個過程中都使用這個模式。我個人並不認爲它有用,但如果你在改變它的時候,那麼我們爲什麼不通過每個'if 0 &&'並給每個人一個特殊的名字。如何將類/結構屬性重命名爲camelCase或切換到使用One True Brace Style等。 – Brandin

相關問題