如何解决每当变量更改时保存新值
我在Visual Studio 2015上使用C ++。我想检查状态变量在这些行中是否发生了变化。如果一切正常,状态始终返回0,否则返回-1。 我的问题是我只在最后一个状态变量上检查 。 我怎么知道某个状态是否为-1?
int function1(ATF *cm33) {
int status;
uint32_t val;
status = cm33->readData32(SAU_CTRL_Mv8,&val);
status = cm33->writeData32(SAU_CTRL_Mv8,0x3);
status = cm33->readData32(SAU_CTRL_Mv8,&val);
return status; }
解决方法
如果您想保留-1
的值以表示任何个状态都不为零,请使用
int status = 0;
之后
status |= cm33->readData32(SAU_CTRL_Mv8,&val);
status |= cm33->writeData32(SAU_CTRL_Mv8,0x3);
status |= cm33->readData32(SAU_CTRL_Mv8,&val);
这的优点是,如果每个状态均为0
,则 仅返回0
。如果可能的状态值以某种方式更改,则仅添加可能的值即可将程序推入未定义状态。请勿以status = a | b | c;
形式的一个表达式编写它,因为由于(通过怀疑的)通过指针对val
的(可疑的)无序写入,程序的行为随后将无法定义。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。