【问题标题】:To remove #ifdef DEBUG parts for release or not?是否删除#ifdef DEBUG 部分以进行发布?
【发布时间】:2009-04-09 21:10:48
【问题描述】:

发布源代码给别人看,编码风格没有很好定义的时候 (没有双关语) 您是否删除了#ifdef DEBUG 部分?

(也就是定义了DEBUG时才编译的部分)

如果我删除它,它会使代码看起来更好(或者我看起来更好 - 我真的希望有人知道我已经调试过,以及我是如何完成的吗?),但是我会失去调试部分,或者必须保留两个(或更多)版本的代码。

要做什么?

【问题讨论】:

    标签: c debugging coding-style c-preprocessor


    【解决方案1】:

    我认为,如果您的调试代码是干净的并且在任何日志记录语句中都使用“专业”语言,则可以保留它。如果调试代码草率或有调试消息,例如“我在这里...” “现在我在这里……”你应该把它拿出来。

    如果您的调试语句反映了您无法解决的问题,如果您想将您的软件“推销”给某人,最好将其删除。 (希望您以后可以修复它们...)

    【讨论】:

    • 如果你要遍历并删除所有不专业的调试代码,你不妨专业化并留下它们。
    【解决方案2】:

    除非您在评论中使用不可重新编译的语言,否则您应该保留代码原样。如果有人要使用您的代码,他们很可能会需要这些代码,或者这将帮助他们理解您的代码。 (评论也是如此)

    编辑:我过去经常处理其他工作室代码。我见过调试代码、死路和许多其他东西,但我唯一讨厌的还是那些去掉调试和注释代码的人,这使得他们的代码很难维护

    【讨论】:

      【解决方案3】:

      我也投票决定将其保留。如果/当您开始编写第一个补丁时,您可能需要那些被 DEBUG 阻止的部分。此外,QA 不会喜欢您删除代码,即使它在指令中被阻止。

      【讨论】:

        【解决方案4】:

        如果你决定删除它们,只需在导出代码时使用脚本将它们过滤掉,无需维护两个版本。

        【讨论】:

          【解决方案5】:

          使用源代码管理系统中的所有内容维护您的基本版本。

          然后,如果您想分发以一种或多种方式过滤的源代码,请制作一个脚本来制作您的源代码的发布版本。

          不要维护这些二级过滤存储库,让它们始终生成。

          但这值得花时间吗?可能不会,您可能应该只分发包括#ifdef DEBUG 部分在内的所有内容。

          【讨论】:

            【解决方案6】:

            维护 ANYTHING 的多个版本是不可取的。

            仅在您必须时这样做。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2020-10-27
              • 1970-01-01
              • 2010-12-19
              • 2013-07-29
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2020-01-06
              相关资源
              最近更新 更多