gpt4 book ai didi

C:为什么 size_t 不是 C 关键字?

转载 作者:太空狗 更新时间:2023-10-29 16:23:55 25 4
gpt4 key购买 nike

sizeof 是 C 关键字。它以名为 size_t 的类型返回大小。但是,size_t 不是关键字,而是主要在 stddef.h 和其他 C 标准头文件中定义文件也是。

考虑这样一个场景,您想要创建一个包含任何 C 标准头文件或库的 C 程序。 (例如,如果您正在创建一个操作系统内核。)现在,在这样的代码中,可以使用 sizeof(它是一个 C 关键字,所以它是语言<的一部分/em>),但它返回的类型 (size_t) 不可用!

这是否意味着 C 标准规范中存在某种问题?你能澄清一下吗?

最佳答案

它不会按字面意思返回类型 size_t 的值,因为 size_t 本身不是具体类型,而是未指定的内置类型的 typedef。 Typedef 标识符(例如 size_t)完全等同于它们各自的基础类型(并在编译时转换为它们)。如果 size_t 在您的平台上定义为 unsigned int,则 sizeof 在您的系统上编译时会返回一个 unsigned int。 size_t 只是维护可移植性的一种便捷方式,如果您明确地按名称使用它,则只需将其包含在 stddef.h 中。

关于C:为什么 size_t 不是 C 关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/739727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com