ホームページ > よくある問題 > 関数呼び出しはネストできますか?

関数呼び出しはネストできますか?

藏色散人
リリース: 2023-02-07 15:35:24
オリジナル
22426 人が閲覧しました

関数呼び出しはネストできますが、関数定義はネストできません。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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート