gpt4 book ai didi

c - 为什么 C 中有这么多自定义数据类型?

转载 作者:太空宇宙 更新时间:2023-11-04 00:57:56 24 4
gpt4 key购买 nike

为什么会有这么多自定义数据类型,如socklen_t、ssize_t、size_t、uint16_t?我不明白对他们的真正需求。对我来说,它们只是一堆需要学习的新变量名。

最佳答案

意图和可移植性。

例如,假设我有一个变量unsinged n。一个无符号整数可以表示很多东西,所以它的意图并不明确。但是当我写 size_t n 时,很明显 n 表示某物的大小。当我写socklen_t n时,很明显n表示与socket相关的东西的长度。

第二个原因是便携性。例如,socklen_t 保证至少为 32 位。现在,如果我们只写 unsigned n,那么 n 的大小可能小于 32 位。 size_t 可以保存任何对象的大小,但实际值是实现定义的。当我们使用普通整数时,可能会发生 sizeof(int) 无法容纳理论上可能的最大对象的大小。但是使用 size_t 没有这样的可移植性问题。

uint16_t 清楚地表明它是 16 位的无符号整数,比使用 unsigned intunsigned short 既清晰又可移植。

关于c - 为什么 C 中有这么多自定义数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52477061/

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