存储更多布尔值的最有效方法

tsu*_*nka 4 c performance memory-management

我需要在c中的结构中存储四个布尔值.是的我可以使用四个整数或将它们放入一个数组但我想做得更好一些.我在考虑像"0000"这样的int,其中每个数字代表布尔值,但是当编辑时我不能只编辑一个数字,对吗?这看起来不完美......

谢谢你的任何想法

hou*_*oft 17

您可以使用位域结构:

struct foo {
  unsigned boolean1 : 1;
  unsigned boolean2 : 1;
  unsigned boolean3 : 1;
  unsigned boolean4 : 1;
};
Run Code Online (Sandbox Code Playgroud)

然后,您可以分别轻松编辑每个布尔值,例如:

struct foo example;
example.boolean1 = 1;
example.boolean2 = 0;
Run Code Online (Sandbox Code Playgroud)