我有一个类似于以下内容的程序部分:
X->updateA();
X->updateB();
X->updateC();
X->updateD();
每个函数都应该返回一个整数,表示它是否运行成功,比如int ret_val=0
是否成功int ret_val=1
。
我想知道是否存在任何可以连续处理每个函数的包装器构造,只要ret_val == 0
. 在我的情况下,它也应该调用X->updateD();
,而不管ret_val
.
现在我有:
int ret_val = 0;
ret_val = X->updateA();
if (ret_val == 0) ret_val = X->updateB();
if (ret_val == 0) ret_val = X->updateC();
X->updateD();
我认为这不是真正可读的。我更喜欢类似于 while 循环的东西,尽管它必须在每次函数调用后检查条件。类似这样的东西:
int ret_val = 0;
unless(ret_val != 0)
{
ret_val = X->updateA();
ret_val = X->updateB();
ret_val = X->updateC();
}
X->updateD();
有没有这样的构造?