我想做这样的事情:
if([FUNCTION] > 3){
//do stuff
}
其中FUNCTION
是一个执行某些操作并将结果作为int返回的函数。例如,函数可以定义为:
a + 1;
return a;
其中a
是先前定义的变量。有没有办法在C中这样做?非常感谢!
答案 0 :(得分:3)
首先
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
}
如果在if语句的范围内不知道a
,您可能意味着这样的事情:
int a = 7;
int foo() {
a = a + 1;
return a;
}
// later ...
if (foo() > 3) {
// do stuff
}
答案 1 :(得分:2)
从语法上来说,C允许if ( expression )
并且关系表达式左侧的函数调用>
也是一个表达式,答案是肯定的,你可以以直截了当的方式做到这一点,
if (some_function() > 3) {
/* Do stuff. */
}
什么样的C书不清楚?我强烈推荐Kernighan,Ritchie, C编程语言,第2版(ANSI / ISO C89更新)。
答案 2 :(得分:1)
#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
。