提问人:GingerBadger 提问时间:5/23/2020 更新时间:5/23/2020 访问量:281
没有正文的 if 语句
If statement without a body
问:
我希望在我的任何函数返回非零错误代码后使用语句停止执行流。但是,如果我使用“裸”逻辑语句,如||
void function myFun(void)
{
struct myStruct *test = malloc(sizeof(struct myStruct));
if (!test)
return ;
(subFun1(&test) ||
subFun2(&test) ||
subFun3(&test) ||
subFun4(&test));
free(test);
}
海湾合作委员会抱怨
error: value computed is not used [-Werror=unused-value]
我也可以写这样的东西,
void function myFun(void)
{
struct myStruct *test = malloc(sizeof(struct myStruct));
if (!test)
return ;
if (subFun1(&test) ||
subFun2(&test) ||
subFun3(&test) ||
subFun4(&test))
;
free(test);
}
但它看起来超级尴尬。
处理这个问题的最佳方法是什么?
答: 暂无答案
上一个:如何避免大部分未采用的条件分支?
下一个:绕着正方形滚一个圆圈
评论
if (subFun1(&test) == 0 && subFun2(&test) == 0 && subFun3(&test) == 0) subFun4(&test);
(或者您可以用于每个术语,但 IMO 并不那么明确)。!subFunN(&test)
(void)(subFun1(&test) || ...);
void