c中有1U和1之间有区别吗?
发布时间:2020-12-16 05:56:29 所属栏目:百科 来源:网络整理
导读:while ((1U i) nSize) { i++; } 使用1U而不是1的任何特殊原因? 解决方法 在大多数的合规者身上,两者都会以相同的表示形式给出结果.然而,根据C规范,对符号参数进行位移操作的结果给出了实现定义的结果,因此在理论上1U 我比1一世.在实践中,您将遇到的所有C编
while ((1U << i) < nSize) { i++; } 使用1U而不是1的任何特殊原因? 解决方法
在大多数的合规者身上,两者都会以相同的表示形式给出结果.然而,根据C规范,对符号参数进行位移操作的结果给出了实现定义的结果,因此在理论上1U <我比1<一世.在实践中,您将遇到的所有C编译器都会将签名的左移与未签名的左移相同. 另一个原因是如果nSize是无符号的,则将其与有符号的1<我会生成一个编译器警告.将1更改为1U可以消除警告消息,您不必担心如果我是31或63会发生什么. 编译器警告很可能是代码中出现1U的原因.我建议编译C,打开大多数警告,并通过更改代码消除警告消息.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |