gpt4 book ai didi

c++ - #ifdef 和#endif 中无法访问的代码是否在编译/链接期间被删除?

转载 作者:太空宇宙 更新时间:2023-11-04 05:06:07 26 4
gpt4 key购买 nike

#ifdef 和#endif 中无法访问的代码是否在编译/链接期间被删除或保留在可执行文件中,即使它无法访问?

#ifdef DEBUG
// some debug operations
#endif

没有DEBUG flag编译后是否还保留debug操作代码,如果是会影响release build的性能吗?

编辑:

如果有一些模块只在debug操作中用到,如果链接到程序中,会不会影响性能?

最佳答案

预处理器将完全删除此类代码——编译器甚至看不到它。

例如,您可以使用 g++ -E 查看预处理器做了什么,以及编译器能看到什么。

关于c++ - #ifdef 和#endif 中无法访问的代码是否在编译/链接期间被删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5379629/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com