gpt4 book ai didi

c++ - uint32、int16、uint8 .. 为什么这些常用数据类型没有纳入标准

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:00:19 25 4
gpt4 key购买 nike

<分区>

多年来,在涉及 C/C++ 的多个组织和各种项目中,我发现通过定义本地版本的 types.h 解决了对固定宽度整数的需求,它看起来像这个:-

typedef  signed char        int8;
typedef unsigned char uint8;
typedef signed short int16;
typedef unsigned short uint16;
typedef signed long int32;
typedef unsigned long uint32
typedef signed long long int64;
typedef unsigned long long uint64;

为什么这些没有集成到 C/C++ 标准中?

我知道 C99 已经标准化了 uint32_t 之类的东西。类似地,Microsoft 已经定义了它自己的 UINT32 等。 - 但这些仍然需要 typedef 因为uintX 术语的使用在遗留代码和经验丰富的开发人员编写的新代码中很普遍

我也知道 Boost Integer Library - 同样,这不是他们明确提到的标准 C++:-

Because these are boost headers, their names conform to boost header naming conventions rather than C++ Standard Library header naming conventions.

关于将 [u]intX 集成到官方标准中的优缺点的想法?

编辑:
该问题已经产生了高质量的答案和意见。谢谢他们提供的信息和帮助!一些评论表明问题不够清楚:-
“您具体询问的是为标准中已经存在的 typedef 添加更多别名” - 是的,正是

@Pascal Cuoq 的回答解决了真正的问题,以防这些问题被添加到标准中:-

Do not wait for the name uint32 to become the official name of an integer type in C++; it will probably never happen, precisely because so many programs are already typedef'ing a type to this name.

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