c++ - 我可以在所有真/所有假之间合法地 memset 布尔结构吗?
问题描述
我有一个布尔结构。
它不包含其他数据成员,但bool
.
struct foo {
bool b1 = false;
bool b2 = false;
bool b3 = false;
// many more ...
};
在不使用反射或代码生成的情况下,
我正在寻找一种简单的方法将它们全部设置为 true,然后将它们全部设置为 false。
memset 到处都是合法的吗?
foo f;
memset(&f, true, sizeof f);
memset(&f, false, sizeof f);
只要我保证数据成员始终是原语,这是一个安全且定义明确的操作吗?如果没有,是否有任何其他建议可以确保大型集合布尔值(将来可能会添加更多)可以始终设置为真/假。我还想默认保持它们为假。我想偶尔将它们全部设置为 true 的原因是它对单元测试和代码覆盖很有用。
解决方案
推荐阅读
- linux - 在 mmap 和 brk 上使用带有 kprobes 的内核模块跟踪 malloc 函数调用
- reactjs - 登录单击后,我无法将从登录表单中获得的数据呈现到主页中
- javascript - 如何获得索引使用 forEach 循环?
- asp.net - Visual Studio ADO.NET 实体框架向导未显示 PostgreSql 数据提供程序
- javascript - 单击时仅触发一个和第一个 div
- kotlin - Apache Flink - timerService,onTimer 获取整个事件
- windows - 将用户名/密码直接传递给 openVPN CLI
- apache - Apache2服务器,不同机器上的html文件
- python-requests-html - “requests-html”代理设置不起作用
- python - bsc 网络上的私钥