我想做这样的事情:
if([FUNCTION] > 3){
//do stuff
}
whereFUNCTION
是一个执行某些操作并以 int 形式返回结果的函数。例如,函数可以定义为:
a + 1;
return a;
wherea
是先前定义的变量。有没有办法在C中做到这一点?非常感谢!
我想做这样的事情:
if([FUNCTION] > 3){
//do stuff
}
whereFUNCTION
是一个执行某些操作并以 int 形式返回结果的函数。例如,函数可以定义为:
a + 1;
return a;
wherea
是先前定义的变量。有没有办法在C中做到这一点?非常感谢!
首先
a + 1;
是一个没有效果的声明,所以我假设你的意思是a = a + 1
. 那么是的,您当然可以从 if 语句中调用函数。
int foo(int* a) {
*a = *a + 1;
return *a;
}
// later ...
int a = 7;
if (foo(&a) > 3) {
// do stuff
}
如果a
在 if 语句的范围内不知道,您的意思可能是这样的:
int a = 7;
int foo() {
a = a + 1;
return a;
}
// later ...
if (foo() > 3) {
// do stuff
}
由于从语法上讲,C 允许关系表达式if ( expression )
左侧的函数调用with也是一个表达式,答案是肯定的,您可以直接执行此操作,>
if (some_function() > 3) {
/* Do stuff. */
}
什么样的C书没有说明这一点?我强烈推荐 Kernighan,Ritchie,The C Programming Language,第 2 版(ANSI/ISO C89 更新)。
#include<stdio.h>
int a=5;
int foo(int a)
{
a++;
return a;
}
int main()
{
if(foo(a) > 3) {
printf("%d\n",a);
// Do stuff
}
return 0;
}
这很简单。
编辑:这只是显示if
条件返回的演示源代码true
。