gpt4 book ai didi

c++ - 零位移位会正常工作吗?

转载 作者:IT老高 更新时间:2023-10-28 22:23:00 25 4
gpt4 key购买 nike

假设我有这样的功能:

inline int shift( int what, int bitCount )
{
return what >> bitCount;
}

每次 bitCount 为非负数且在 int 的位数内时,都会从不同的站点调用它。我特别担心 bitCount 等于零的调用 - 那么它会正常工作吗?

编译器在编译其调用站点时看到函数的整个代码是否有可能将 bitCount 等于零的调用减少为无操作?

最佳答案

According to K&R “如果右操作数为负数,或者大于或等于左表达式类型中的位数,则结果未定义。” (A.7.8) 因此 >> 0 是恒等式右移并且完全合法。

关于c++ - 零位移位会正常工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/980565/

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