c - x64 上是否需要 int ?

标签 c 64-bit

如前所述,针对 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/

相关文章:

.NET Word Interop 适用于 Windows 7 但不适用于 Server 2008

c - stat() 得到组名是root

c - 使一个函数只能从另一个函数访问

java - 从 Java 中找出一个 dll 是 32 位还是 64 位

c# - 堆栈跟踪优化

内存寻址

将 32 位指针转换为 64 位整数

c++ - fwrite, fread - fread 的问题

c - 此处使用变量 'x' 时未初始化

c++ - 由于以下原因,32 位应用程序无法在 x64 Win2003 上运行