gpt4 book ai didi

c - C 中不带分支的 double 或集合整数

转载 作者:行者123 更新时间:2023-11-30 21:13:43 25 4
gpt4 key购买 nike

我想编写一个函数,在调用时将其参数加倍(如果它非零)或返回一个特定常量(如果它为零)。如果有帮助的话,常数始终是 2 的幂。

假设常量是 8。当用 0 调用时,我希望它返回 8。当用 8 调用时,我希望它返回 16。依此类推。

简单的方法是这样的:

unsigned foo(unsigned value)
{
return (value ? value * 2 : 8);
}

是否可以在不分支的情况下完成此操作?

最佳答案

这不会导致额外的内存访问。

int f(int a)
{
const int c = 8;
return (a*2)+(a==0)*c;
}

关于c - C 中不带分支的 double 或集合整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33032678/

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