假设我有一些legacy无法更改的代码,除非bug被发现,它包含以下代码:
bool data[32];
memset(data, 0, sizeof(data));
这是设置所有内容的安全方法吗bool
在数组中到false
value?
更一般地说,安全吗memset
a bool
to 0
才能发挥其价值false
?
是否保证它适用于所有编译器?或者我是否需要请求修复?
有法律保障吗?不。
C++ 没有提及 的表示bool
values.
是否有现实的保证?是的。
我的意思是,如果你想找到一个不代表布尔值的 C++ 实现false
作为一系列零,我祝你好运。鉴于false
必须隐式转换为0
, and true
必须隐式转换为1
, and 0
必须隐式转换为false
,和非0
必须隐式转换为true
……好吧,如果你以其他方式实现它,那就太愚蠢了。
这是否意味着它“安全”由您决定。
我通常不会这么说,但如果我处于你的处境,我很乐意不说这句话。如果您确实担心,可以将测试可执行文件添加到可分发文件中,以在安装实际项目之前验证每个目标平台上的先决条件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)