gpt4 book ai didi

c++ - 我应该使用 cstdint 吗?

转载 作者:IT老高 更新时间:2023-10-28 12:29:14 31 4
gpt4 key购买 nike

我一直在思考要不要使用<cstdint>里面的typedef与否。

我个人更喜欢写 uint32_t超过 unsigned intint8_t超过 char等等......因为它对我来说更直观。

你们怎么看?使用 <cstdint> 中的 typedef 是个好主意吗?或不?有什么缺点吗?

最佳答案

其实,我建议两者都用。

如果您想要绝对是 32 位无符号的,请使用 uint32_t。例如,如果您正在实现一个“结构”来表示一个外部对象,其规范将其字段之一定义为 32 位无符号。

如果您想要“机器的自然字长”,请使用 int 或 unsigned int。例如:

for (int i = 0 ; i < 200 ; ++i)
// stuff

“机器的自然字长”将为您提供最佳性能,无论是在今天的处理器上还是在明天的处理器上。

如果您的意思是“字符”,请使用“char”;如果您的意思是“字节”,则为“char”或“unsigned char”。 C/C++ 允许您通过“char *”访问任意对象的字节,严格来说,不是其他任何东西。

如果您特别想要一个 8 位整数,请使用 uint8_t 或 int8_t,类似于 uint32_t。

关于c++ - 我应该使用 cstdint 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6144682/

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