関数呼び出しはネストできますが、関数定義はネストできません。C 言語では、関数定義は並列で互いに独立しているためです。つまり、関数を定義するときに、関数本体にその定義を含めることはできません。つまり、関数をネストした定義にすることはできませんが、ネストした呼び出しにすることはできます。
このチュートリアルの動作環境: Windows 7 システム、C18 バージョン、Dell G3 コンピューター。
C 言語では、関数呼び出しはネストできますが、関数定義はネストできません。
定義を入れ子にすることはできません、つまり
function a(){ function b(){ } }
関数 a の中に関数 b を定義するのは間違いです。このように関数 b を関数 a の外にのみ定義できます
function a(){} function b(){}
セット呼び出しをネストすることができます。つまり、
function a (){ b(); }
は、a 関数内で定義された b 関数を呼び出すことができます。
関数をネストできない理由は、構文がサポートされておらず、関数定義内で関数を定義できないためです。 C 言語の関数の定義はすべて並列であり、互いに独立しています。つまり、関数が定義されるとき、関数本体に別の関数の定義を含めることはできません。つまり、関数をネストした定義にすることはできませんが、関数をネストすることはできます。呼び出しがネストされている可能性があります。
関数のネストされた呼び出しとは何ですか?
関数を呼び出す過程で、別の関数を呼び出す過程
関数 C言語では、各関数の定義は関数内に比較的独立して存在します 他の関数は、が呼び出されます (これには main() 関数は含まれません)。この呼び出し処理を関数の入れ子といいます(関数の定義部分を入れ子にすることはできません)。
例:
2 つの整数の最大公約数と最小公倍数を求めます。
問題分析
2 つの数値の最小公倍数 = 2 つの数値の積/2 つの数値の最大公約数。
したがって、キーは最大公約数です。
最大公約数を見つけるための思考マップ:
コードの実装
#define _CRT_SECURE_NO_WARNINGS 1 #include"stdio.h" #include"math.h" int gcd(int a, int b) { int c; if (a<b)//保证a的值大于b { c = b; b = a; a = c; } while (a != 0) { c = a%b; b = a; a = c;//把余数赋值给a,直到a=0时跳出循环,找到结果。 } return b; } int lcd(int a, int b) { int c; c = (a*b) / (gcd(a, b));//函数嵌套的过程 return c; } main() { int m, n; printf("请输入两个数:"); scanf("%d,%d", &m, &n); printf("%d和%d最大公约数为%d\n", m, n, gcd(m, n)); printf("最小公倍数为%d\n", lcd(m, n)); }
関数の実装: 2 つの整数 45 と 56 の最小公倍数と最大公約数を求めます。
推奨: c ビデオ チュートリアル
以上が関数呼び出しはネストできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。