c中有1U和1之间有区别吗?

前端之家收集整理的这篇文章主要介绍了c中有1U和1之间有区别吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
while ((1U << i) < nSize) {
        i++;
    }

使用1U而不是1的任何特殊原因?

解决方法

在大多数的合规者身上,两者都会以相同的表示形式给出结果.然而,根据C规范,对符号参数进行位移操作的结果给出了实现定义的结果,因此在理论上1U <我比1<一世.在实践中,您将遇到的所有C编译器都会将签名的左移与未签名的左移相同. 另一个原因是如果nSize是无符号的,则将其与有符号的1<我会生成一个编译器警告.将1更改为1U可以消除警告消息,您不必担心如果我是31或63会发生什么. 编译器警告很可能是代码中出现1U的原因.我建议编译C,打开大多数警告,并通过更改代码消除警告消息.

猜你在找的C&C++相关文章