gpt4 book ai didi

c++ - 编译器是否足够智能以检测空操作函数?

转载 作者:太空狗 更新时间:2023-10-29 19:50:19 26 4
gpt4 key购买 nike

如果我这样写一个函数:

void doMaybeNothing()
{
#ifndef IM_LAZY
doSomething();
#endif
}

现代编译器是否足够智能,可以检测到空操作函数并进行优化,从而不会浪费任何周期?还是对性能的影响总是很小?

最佳答案

假设函数体在编译时或链接时可用(即,它不在动态链接库中),大多数现代编译器应该摆脱对不执行任何操作的函数的调用(如果启用优化,当然)。

实际上,这只是内联扩展的一种形式,它允许函数体在任何调用它的地方扩展,只要结果相同即可。如果该函数什么都不做,那么它在内联的任何地方都将简单地展开为空。

关于c++ - 编译器是否足够智能以检测空操作函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2985449/

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