我在哪里可以找到 size_t 的定义?

新手上路,请多包涵

我看到用这种类型定义的变量,但我不知道它来自哪里,也不知道它的目的是什么。为什么不使用 int 或 unsigned int? (其他“类似”类型呢?Void_t 等)。

原文由 Eliseo Ocampos 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

来自 维基百科

stdlib.hstddef.h 头文件定义了一个名为 size_t 1 的数据类型,用于表示对象的大小。采用大小的库函数期望它们的类型为 size_t ,并且 sizeof 运算符的计算结果为 size_t

size_t 的实际类型是平台相关的;一个常见的错误是假设 size_t 与 unsigned int 相同,这可能导致编程错误, 2 特别是随着 64 位架构变得越来越普遍。

C99 7.17.12

标准头文件中定义了以下类型和宏 stddef.h

<剪辑>

size_t

这是 sizeof 运算符结果的无符号整数类型

原文由 Martin Liversage 发布,翻译遵循 CC BY-SA 4.0 许可协议

至于“为什么不使用 int 或 unsigned int?”,仅仅是因为它在语义上更有意义。有一个实际的原因,它可以是 typedef d 作为 int 然后升级到 long 以后,无需任何人更改其代码,当然,但更根本的是,类型应该是有意义的。为了大大简化,类型为 size_t 的变量适用于并用于包含事物的大小,就像 time_t 适用于包含时间值一样。这些如何实际实施应该是实施的工作。与仅调用所有内容 int 相比,使用像这样有意义的类型名有助于阐明程序的含义和意图,就像任何丰富的类型集一样。

原文由 Crowman 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题