bool bDeleted = false;
if (partfile,bDeleted)
partfile->PerformFileCompleteEnd(wParam);
此处,if
语句计算 partfile,bDeleted,但 bDelete 始终为 false,因此表达式无法运行。关键问题是“这是怎么回事?”。可能的答案是有人暂时想要阻止该partfile->PerformFileCompleteEnd(wParam);
语句运行,可能是因为它导致了一些问题,或者如果没有执行该步骤,他们希望确保以后的代码正确报告错误。为了让他们记住代码过去的样子,他们将旧的“if (partfile)”逻辑留在那里,但添加了一个硬编码的 bDeleted 变量来记录该partfile->Perform...
逻辑已有效地从程序中“删除”。
暂时禁用此类代码的更好方法可能是......
#if 0
if (partfile)
partfile->PerformFileCompleteEnd(wParam);
#endif
...尽管有时我也尝试记录推理...
#ifndef DONT_BYPASS_FILE_COMPLETE_PROCESSING_DURING_DEBUGGING
if (partfile)
partfile->PerformFileCompleteEnd(wParam);
#endif
...或者...
if (partFile, !"FIXME remove this after debugging")
partfile->PerformFileCompleteEnd(wParam);
最佳选择取决于您的工具集和现有习惯(例如,一些编辑器在反向视频中突出显示“FIXME”和“TODO”,因此很难错过或灰显#if 0 块;您的源代码管理检查警告可能有特定字符串about; 预处理器仅在调试与发布版本中定义可以防止意外分发等)。