如前所述,针对 x64 的 C 代码应始终使用 size_t 而不是 int 来执行计数和数组索引等操作。
鉴于此,仅标准化 size_t(类型定义为更短的值)而不是 int 作为整个代码库中常用的整数类型,可以说会更简单且不易出错。
我有什么遗漏的吗?假设您不需要有符号整数,并且您不存储小整数的大型数组(将它们设为 32 位而不是 64 位可以节省内存),是否有任何理由优先使用 int 而不是 size_t?
最佳答案
我想说相反,我更喜欢固定整数大小的东西,uint8_t
... uint64_t
(很快unit128_t
),这些将是基本类型。这样你就会知道你会得到什么。
以及其他typedef
,例如size_t
,然后为这些别名。然后,您可以简单地检查 typedef
中的 uintprt_t
并推断出您的地址宽度,例如
而且,人们肯定需要签名类型。
但这种关系肯定可以澄清。现在,在标准中,有符号类型是从无符号类型推导出来的。这可以通过强制使用前缀signed
来明确。但可以肯定的是,后者不会发生,人们对 int
的情感依赖太多了:)
关于c - x64 上是否需要 int ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3792675/