代码之家  ›  专栏  ›  技术社区  ›  greywolf82

当确实需要ifdef进行日志记录时

c++
  •  3
  • greywolf82  · 技术社区  · 6 年前

    我目前正在开发一个c++代码,它已经很老了。在这段代码中,我可以找到:

    #ifdef LOG
    LOG_DEBUG(bla bla bla);
    #endif
    

    在调试头文件中:

    #ifdef LOG
    LOG_DEBUG(X) ....code....
    #else
    LOG_DEBUG(X) (void) 0
    #endif
    

    现在我的问题是:代码中的每个语句中都重复ifdef有什么原因吗?我想这种策略只在一种情况下是值得的,即当我需要做一些艰苦的准备工作来记录一些东西时。

    #ifdef LOG
    int a = mySuperComplicatedFunction();
    ....other worth code here with "a"...
    LOG_DEBUG(the result here);
    #endif
    

    我有什么遗漏吗?

    1 回复  |  直到 6 年前
        1
  •  5
  •   Konrad Rudolph    6 年前

    现在我的问题是:代码中的每个语句中都重复ifdef有什么原因吗?

    不,在这种情况下,这是完全多余的,你不会遗漏任何东西。特别是,您正确地确定了它实际需要的一个案例。