在使用编译器指令时,我不清楚以下两个代码片段中哪一个是正确/首选的,以及为什么。似乎我见过的大多数开发人员和开源项目都使用第一个,但我也看到第二个也经常使用。
#ifdef DEBUG
[self doSomethingOnlyWhenDebugging];
#endif
相对
#if DEBUG
[self doSomethingOnlyWhenDebugging];
#endif
上面哪些代码片段更适合仅在调试时运行代码,为什么?我的猜测是,如果 DEBUG 被定义为 TRUE 或 FALSE,第一个将运行,而第二个将仅在 DEBUG 定义并设置为 TRUE 时运行。那是对的吗?