gpt4 book ai didi

C++ 性能优化

转载 作者:太空狗 更新时间:2023-10-29 20:25:42 41 4
gpt4 key购买 nike

考虑 if 语句的这两种情况:

if( error ==0 )
{
// DO success stuff
}
else
{
// DO error handling stuff
}

还有这个:

if( error != 0 )
{
// DO error handling stuff
}
else
{
// DO success stuff
}

哪个优于另一个,因为我知道大多数时候我都来到了成功的代码路径。

最佳答案

与其担心这可能只是在极少数情况下的性能问题,不如问问自己哪个更具可读性。对于错误检查,您可以使用 guard clause ,这避免了太多缩进/括号:

if( error != 0 )
{
// DO error handling stuff
return;
}

// DO success stuff

如果您知道一条路径比另一条路径更有可能,并且您确定这确实对性能至关重要,您可以让编译器知道(GCC 示例):

if( _builtin_expect (error == 0, 1) )
{
// DO success stuff
}
else
{
// DO error handling stuff
}

当然,这会使代码更难阅读 - 只有在确实需要时才使用它。

关于C++ 性能优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23000342/

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