我在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时间.