-1

私はこのようなことをしたい:

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

whereFUNCTIONは何らかのアクションを実行し、結果を int として返す関数です。たとえば、関数は次のように定義できます。

 a + 1;
 return a;

whereaは以前に定義された変数でした。Cでこれを行う方法はありますか?どうもありがとう!

4

3 に答える 3

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
}

ifaが if ステートメントの範囲内で不明な場合は、おそらく次のような意味でした:

int a = 7;

int foo() {
  a = a + 1;
  return a;
}

// later ...

if (foo() > 3) {
  // do stuff
}
于 2012-12-14T12:14:21.653 に答える
2

文法的に、C では許され、関係式if ( expression )左側の関数呼び出しも式なので、答えはイエスです。これは簡単な方法で行うことができます。>

if (some_function() > 3) {
    /* Do stuff. */
}

これを明確にしないのは、どのような C 本ですか? Kernighan、Ritchie、The C Programming Language、第 2 版 (ANSI/ISO C89 の更新) を強くお勧めします。

于 2012-12-14T12:16:53.307 に答える
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です。

于 2012-12-14T12:16:02.070 に答える