今天,在对Code Review的回顾中遇到了一个有趣的观点。@Veedrac在recommened 此答案该可变大小类型(例如int
和long
)具有固定尺寸类型等来代替uint64_t
和uint32_t
。从该答案的评论中引用:
int和long的大小(以及它们可以容纳的值)取决于平台。另一方面,int32_t始终为32位长。使用int只是意味着您的代码在不同平台上的工作方式不同,这通常不是您想要的。
@supercat 在此处部分解释了标准不固定常见类型的背后原因。与当时通常用于系统编程的汇编相反,C被编写为可跨体系结构移植。
我认为最初的设计意图是,除int之外的每种类型都是可以处理各种大小数字的最小事物,而int是可以处理+/- 32767的最实用的“通用”大小。
对于我来说,我一直在使用int
,并不真正担心其他选择。我一直认为这是性能最好的大多数类型,故事结束了。我认为固定宽度唯一有用的地方是在对数据进行编码以进行存储或通过网络传输时。我也很少见过其他人编写的代码中的固定宽度类型。
我是停留在70年代还是int
在C99及以后的时代实际上有使用的理由?