私はこのようなことをしたい:
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
}
ifa
が if ステートメントの範囲内で不明な場合は、おそらく次のような意味でした:
int a = 7;
int foo() {
a = a + 1;
return a;
}
// later ...
if (foo() > 3) {
// do stuff
}
文法的に、C では許され、関係式のif ( expression )
左側の関数呼び出しも式なので、答えはイエスです。これは簡単な方法で行うことができます。>
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
です。