C:if语句中的函数

时间:2012-12-14 12:12:02

标签: c if-statement

我想做这样的事情:

 if([FUNCTION] > 3){
         //do stuff
 }

其中FUNCTION是一个执行某些操作并将结果作为int返回的函数。例如,函数可以定义为:

 a + 1;
 return a;

其中a是先前定义的变量。有没有办法在C中这样做?非常感谢!

3 个答案:

答案 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