【发布时间】:2011-04-13 19:24:14
【问题描述】:
我有三个返回整数错误代码的函数,例如
int my_function_1(const int my_int_param);
int my_function_2(const int my_int_param);
int my_function_3(const int my_int_param);
为了简洁起见,我想同时分配和测试错误。以下内容是否可以使用并且可以移植?
int error=0;
...
if ( error ||
(error = my_function_1(val1) ||
error = my_function_2(val2) ||
error = my_function_3(val3)) ) {
std::cout << "AN ERROR OCCURRED!!!" << std::endl;
}
谢谢!
【问题讨论】:
-
error = my_function_1(val1) -> 将始终评估为 true 。
-
即使error的值为0?
-
你真的想让它难以阅读吗?它让我尖叫。
-
@DumbCoder:如果函数返回零,则不会。
-
好吧,我正在处理一个相对冗长的文件 io 进程,所以任何减少我的代码长度的方法在我看来都是好的。为什么你认为这很丑?我的问题是它是否有效。如果它有效并且您了解该语言的工作原理,那么弄清楚它的作用不应该是微不足道的吗?这对我来说并不过分复杂......
标签: c++ conditional variable-assignment evaluation conditional-operator