小编Ada*_*dam的帖子

更高效的RAM布尔数组?Arduino环境

我在Arduino环境中有一些代码,它需要x(以8为增量)布尔值,这些布尔值可以在运行时为某些移位寄存器代码操作.所以目前我正在使用像这样的布尔数组:

 #define number_of_shiftRegisters 220 //num of 8 bit shift registers

 #define numOfRegisterPins number_of_shiftRegisters * 8 //number of booleans needed

 boolean registers[numOfRegisterPins]; //boolean array
Run Code Online (Sandbox Code Playgroud)

但是我的RAM耗尽了大约200(1600布尔)并且不知道为什么直到我看到它,即使布尔值为1位,它们也存储在8位数据中.

正如我之前所说,所需的bool数量总是增加8,所以我不知道这是否对我有利.

是否有更高内存效率的方式来存储1000多个布尔值,仍然能够通过索引引用它们?

或者......至少更高的内存效率,不会花费更多的CPU时间来设置和迭代?

我曾想过一个char数组,然后对每个字符进行掩码以访问各个位.但我不知道是否有更简单的方法,或者这是否会占用更多的CPU时间.

c boolean arduino boolean-operations

5
推荐指数
1
解决办法
4435
查看次数

标签 统计

arduino ×1

boolean ×1

boolean-operations ×1

c ×1