每次更改时保存变量的新值

Save the new value of a variable whenever it changes

我在 Visual Studio 2015 年使用 C++。我想检查状态变量是否在这些行中发生变化。如果一切正常,状态总是 returns 0 否则 -1。 我的问题是我只检查 最后一个 status 变量。 我怎么知道是否有任何状态为 -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 的值来表示 any 的状态是 non-zero 然后使用

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 的无序写入,程序的行为将是不确定的。