是否有自动方法来删除发布版本的调试方法?

Lew*_*wis 2 c++ java ide debugging release

注意:这是我在此问过的早期问题的扩展:是否有其他函数/方法定义会增加程序的内存占用量?

当我编写一个类时,我通常最终会编写几个测试/调试方法,用于确保类按预期工作,或者用于打印数据以帮助调试,或用于单元测试等.是否有简单/自动没有这些方法进行发布的方法,或者我是否需要在编译发布版本时手动删除额外的代码?

我从C++和Java的角度提出这个问题.我正在使用Code :: Blocks和Eclipse作为IDE,如果它以某种方式起到答案的作用.

peo*_*oro 5

对于C++,您可以使用预处理器宏:

#ifnef NDEBUG
void dbgFunction() { ... }
#endif
Run Code Online (Sandbox Code Playgroud)

NDEBUG是一个标准宏,用于assert:assert如果NDEBUG设置,则不会评估您的离子.


另一个想法可能是从您未使用的符号(或您明确要删除的符号)中剥离二进制文件(因此不触及源代码).