在 C 和 C++ 中选择合适的整数类型

💡 原文英文,约700词,阅读约需3分钟。
📝

内容提要

当Dennis Ritchie创建C语言时,他将int设为默认类型,int的大小没有指定,选择整数类型的准则包括使用size_t标准类型别名表示内存中的字节数,使用off_t POSIX类型别名表示磁盘上文件的大小或位置,使用intptr_t或uintptr_t类型别名表示必须与指针的确切大小相同的整数值,除非涉及特定情况,否则默认使用无符号类型。选择正确的整数类型可以向读者传递正确的信息并消除运行时检查。

🎯

关键要点

  • Dennis Ritchie创建C语言时将int设为默认类型,int的大小没有指定。
  • int的大小应为特定CPU的“自然”字长。
  • C99引入了特定大小的整数类型别名,如int32_t和uint32_t。
  • 在编程中,大多数情况下不需要负整数,通常使用无符号整数。
  • 选择正确的整数类型可以传达准确的信息,避免误导读者。
  • 表示内存中的字节数时,使用size_t标准类型别名。
  • 表示文件大小或位置时,使用off_t POSIX类型别名。
  • 表示内存中对象的计数时,也使用size_t。
  • 仅在需要特定位数或遵循特定API时,使用固定大小的整数类型别名。
  • 表示必须与指针大小相同的整数值时,使用intptr_t或uintptr_t类型别名。
  • 除非需要负值,否则优先使用int,除非需要更小或更大的值。
  • 默认情况下使用无符号类型,除非涉及特定情况。
  • 选择正确的整数类型可以消除运行时检查。

延伸问答

C语言中int类型的默认大小是什么?

int的大小没有指定,应该是特定CPU的“自然”字长。

在什么情况下应该使用size_t类型?

当表示内存中的字节数或对象计数时,应使用size_t类型。

C99引入了哪些特定大小的整数类型别名?

C99引入了int32_t和uint32_t等特定大小的整数类型别名。

选择整数类型时需要考虑哪些因素?

选择整数类型时应考虑用途、是否需要负值、以及是否需要特定位数。

在表示文件大小或位置时,应该使用哪个类型?

在表示文件大小或位置时,应使用off_t POSIX类型别名。

为什么选择正确的整数类型很重要?

选择正确的整数类型可以传达准确的信息,避免误导读者,并消除运行时检查。

➡️

继续阅读