gpt4 book ai didi

c++ - 关于 unsigned int 的建议(江南 Style 版)

转载 作者:IT老高 更新时间:2023-10-28 21:51:11 28 4
gpt4 key购买 nike

“江南style”视频(我相信你一定听说过)在 youtube 上的浏览​​量刚刚超过 20 亿。事实上,谷歌表示他们从未期望视频大于 32 位整数......这暗示了谷歌使用 int 而不是 unsigned 的事实他们的观点柜台。我认为他们不得不重新编写代码以适应更大的 View 。

查看他们的风格指南:https://google-styleguide.googlecode.com/svn/trunk/cppguide.html#Integer_Types

...他们建议“不要使用无符号整数类型”,并给出一个很好的理由:unsigned 可能是错误的。

这是一个很好的理由,但可以提防。我的问题是:通常使用 unsigned int 是不好的编码习惯吗?

最佳答案

Google 规则在专业圈子中被广泛接受。问题是无符号整数类型有点损坏,并且有用于数值时的意外和不自然行为;他们不能作为红衣主教类型。例如,数组的索引可能永远不会是负面的,但写起来很有意义abs(i1 - i2) 查找两个索引之间的距离。如果i1i2 具有无符号类型。

作为一般规则,Google 风格指南中的这一特定规则或多或少符合语言设计者的意图。任何时候你看到除了 int 之外的东西,你可以假设一个特殊的原因。如果是因为范围,它将是 longlong long,甚至是int_least64_t。使用无符号类型通常是您正在处理位的信号,而不是变量,或者(至少在 unsigned char 的情况下)你是处理原始内存。

关于使用 unsigned 的“ self 记录”:this不成立,因为几乎总是有很多值(value)观变量不能(或不应该)取,包括许多积极的变量。 C++没有子范围类型,unsigned 的定义方式意味着它也不能真正用作一个。

关于c++ - 关于 unsigned int 的建议(江南 Style 版),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27275150/

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