gpt4 book ai didi

c++ - 标准 C++ 中是否有固定宽度的 bool 类型?

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

据我所知,bool 类型的宽度是实现定义的。但是是否有任何固定宽度的 boolean 类型,或者我应该坚持使用,例如,uint8_t 来表示固定宽度的 bool?

[编辑]我制作了这个自动生成 C++ 类的 python 脚本,它可以保存我希望能够在微 Controller 和我的计算机之间发送的变量。它的工作方式是它还保留两个数组,其中包含一个指向这些变量中的每一个的指针以及每个变量的大小。这为我提供了必要的信息,可以轻松地序列化和反序列化这些变量中的每一个。但是,为了使其起作用,变量类型的 sizeof、endianness 等必须在两侧相同,因为我在两侧使用相同的生成代码。我不知道这是否会成为一个问题,但我不希望它成为问题。我之前已经使用过这个(32 位 ARM)芯片,过去在发送整数和浮点类型时没有遇到过问题。然而,我要过几天才能回来并可以在芯片上尝试 boolean 值。稍后这可能会成为一个更大的问题,因为此代码稍后可能会在其他芯片上重复使用。

所以我的问题是。标准库中是否定义了固定宽度的 bool 类型,或者我应该只使用 uint8_t 来表示 boolean 值?

最佳答案

没有。如果您需要确定大小,只需使用 uint8_t。在 C 相关语言中,任何整数类型都可以很容易地被视为 boolean 值。参见 https://stackoverflow.com/a/4897859/1105015有关标准如何不保证 bool 的大小为任何特定值的冗长讨论。

关于c++ - 标准 C++ 中是否有固定宽度的 bool 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34459028/

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