如果為 0 則阻止程式碼段
如果你正在考慮刪除或想要暫時禁用的程式碼段,則可以使用塊註釋對其進行註釋。
/* Block comment around whole function to keep it from getting used.
* What's even the purpose of this function?
int myUnusedFunction(void)
{
int i = 5;
return i;
}
*/
但是,如果你使用塊註釋包圍的原始碼在源中具有塊樣式註釋,則現有塊註釋的結尾* /可能導致新塊註釋無效並導致編譯問題。
/* Block comment around whole function to keep it from getting used.
* What's even the purpose of this function?
int myUnusedFunction(void)
{
int i = 5;
/* Return 5 */
return i;
}
*/
在前面的示例中,函式的最後兩行和最後一行’* /‘由編譯器看到,因此它將編譯時出錯。更安全的方法是在要阻止的程式碼周圍使用 #if 0
指令。
#if 0
/* #if 0 evaluates to false, so everything between here and the #endif are
* removed by the preprocessor. */
int myUnusedFunction(void)
{
int i = 5;
return i;
}
#endif
這樣做的好處是,當你想要返回並找到程式碼時,搜尋“#if 0”比搜尋所有註釋要容易得多。
另一個非常重要的好處是你可以使用 #if 0
巢狀註釋掉程式碼。這不能通過評論來完成。
使用 #if 0
的另一種方法是使用一個名稱,該名稱不是 #defined
,但更能描述程式碼被阻止的原因。例如,如果有一個似乎是無用的死程式碼的函式,一旦其他功能到位或類似的東西,你可以使用 #if defined(POSSIBLE_DEAD_CODE)
或 #if defined(FUTURE_CODE_REL_020201)
程式碼。然後在返回以刪除或啟用該源時,很容易找到這些源部分。