我可以使用带有 return 值的 if 语句作为 C 中的函数参数吗?
Can I use an if statement with a return value as a function argument in C?
我希望能够使用 if 语句按值传递:
void function(int x){
// do
}
int otherFunction1(){
// do stuff
}
int otherFunction2(){
// do other stuff
}
int main(){
int x = 1;
function(if (x==1)
return otherFunction1();
else
return otherFunction2(); );
}
感谢您抽出时间,我愿意接受任何其他建议的方法。我知道我可以通过简单地在函数本身内执行一堆 if 语句来完成这项任务。只是好奇我是否可以减少所需的行数。
我会用这个结构来回答,这肯定会给你带来麻烦。
IE。我建议阅读这篇文章,看看它有多丑陋,然后不要这样做。
function((x==1)? otherFunction1() : otherFunction2() );
它使用了三元运算符?:
。用作 condition ? trueExpression : elseExpression
.
请改用它,尽管它不像 "short"。
if (x==1)
{ function( otherFunction1() ); }
else
{ function( otherFunction2() ); }
或者使用 David C. Rankin 的评论中的建议,尤其是当您最终多次这样做时。
我希望能够使用 if 语句按值传递:
void function(int x){
// do
}
int otherFunction1(){
// do stuff
}
int otherFunction2(){
// do other stuff
}
int main(){
int x = 1;
function(if (x==1)
return otherFunction1();
else
return otherFunction2(); );
}
感谢您抽出时间,我愿意接受任何其他建议的方法。我知道我可以通过简单地在函数本身内执行一堆 if 语句来完成这项任务。只是好奇我是否可以减少所需的行数。
我会用这个结构来回答,这肯定会给你带来麻烦。
IE。我建议阅读这篇文章,看看它有多丑陋,然后不要这样做。
function((x==1)? otherFunction1() : otherFunction2() );
它使用了三元运算符?:
。用作 condition ? trueExpression : elseExpression
.
请改用它,尽管它不像 "short"。
if (x==1)
{ function( otherFunction1() ); }
else
{ function( otherFunction2() ); }
或者使用 David C. Rankin 的评论中的建议,尤其是当您最终多次这样做时。