【发布时间】:2020-04-11 23:08:15
【问题描述】:
我可以将三元运算符传递给函数的参数吗?
int test(int a, int b, int c) {
return a+b+c;
}
int nn = 0;
int a = test(1, 1 | (2 ? nn : 0), 1); // test(1, 1 | 0, 1)
n = 1;
a = test(1, 1 | (2 ? nn : 0), 1); // test(1, 1 | 2, 1)
【问题讨论】:
-
你在尝试这个时遇到了什么问题?
-
warning: enum constant in boolean context [-Wint-in-bool-context] -
你检查过每一件作品,还是草草下结论? (测试每个部分的示例是将复杂表达式移出函数的参数列表。例如,您可以尝试
int parameter = 1 | (2 ? nn : 0); int a = test(1, parameter, 1);。) 得出结论往往会适得其反。
标签: c++ arguments conditional-operator function-call