实现调试的一种正常过程是使用

#ifdef DEBUG

...debugging tests...

#endif

有时,代码的某些部分需要一种典型的“检查”算法,因此通常希望将其包装在一个函数上,以便仅在定义DEBUG标志时才调用该代码。让该函数称为myDebug();。

我看到了两种自然的方法:每次调用myDebug()时都添加ifdef,如下所示:
#ifdef DEBUG

myDebug();

#endif

或myDebug定义为:
void myDebug()
{
#ifdef DEBUG

...code...

#endif
}

基本上,第一个避免使用函数调用,而第二个避免使用大量#ifdef /#endif放置代码。

是否有任何“标准”约定可以选择两者中的一种,还是我不知道的另一种方式?是否值得从“样式”的 Angular 选择第二个?

谢谢

最佳答案

我会选择3:

#ifdef DEBUG
#define myDebug(x) myDebug(x)
#else
#define myDebug(x) {}
#endif

这样,代码中到处都不会出现讨厌的#ifdef,对于非调试版本,不会生成任何代码。

10-01 14:33