gpt4 book ai didi

c++ - bool类型的变量是如何存储在内存中的? (C++)

转载 作者:可可西里 更新时间:2023-11-01 18:19:10 31 4
gpt4 key购买 nike

boolean 测试;

sizeof(test) = 1 如果使用 VS 2010。由于每个 C++ 数据类型都必须是可寻址的,“测试” boolean 变量是 8 位(1 字节)。

我的问题是“test”变量真的占用内存中的 1 个字节吗?

有没有什么实现技巧可以让bool数据类型只占一点?如果是,你能举个例子吗?

bool test1[32](在 VS 2010 中),int test2(在 VS 2010 中)

test1test2是否占用相同的内存?

最佳答案

test1 的每个元素必须是可寻址的。这意味着数组 test1 (使用 bool test1[32] 创建的)至少需要 32 个字节(每个元素 1 个字节)。

如果要将多个 boolean 值存储在单个变量中,请使用 std::bitsetstd::vector<bool> (但请注意,后者并不是真正的 boolean vector ,它是一种旨在节省空间的特化)。

IIRC,C++11 还定义了 std::dynamic_bitset .

关于c++ - bool类型的变量是如何存储在内存中的? (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7967924/

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