>일반적인 문제 >함수 호출을 중첩할 수 있나요?

함수 호출을 중첩할 수 있나요?

藏色散人
藏色散人원래의
2021-01-14 10:00:1522421검색

함수 호출은 중첩될 수 있지만 함수 정의는 중첩될 수 없습니다. C 언어에서는 함수 정의가 서로 평행하고 독립적이므로 함수가 정의될 ​​때 함수 본문에 다른 함수 정의가 포함될 수 없습니다. 즉, 함수는 중첩 정의가 될 수 없지만 중첩 호출은 가능합니다.

함수 호출을 중첩할 수 있나요?

이 튜토리얼의 운영 환경: Windows 7 시스템, C18 버전, Dell G3 컴퓨터.

C 언어에서는 함수 호출을 중첩할 수 있지만 함수 정의는 중첩할 수 없습니다.

중첩될 수 없다는 정의는

function a(){
    function b(){
 }
}

함수 내부에서 b 함수를 정의하는 것은 잘못되었습니다. B 함수는 이와 같은 함수 외부에서만 정의할 수 있습니다.

function a(){}
function b(){}

중첩 및 호출이 가능합니다. 즉,

function a (){
    b();
}

에서 정의할 수 있습니다. a 함수 이미 정의된 b 함수를 호출합니다.

함수를 중첩할 수 없는 이유는 구문이 지원되지 않고 함수 정의 내부에서 함수를 정의할 수 없기 때문입니다. C 언어의 함수 정의는 모두 병렬적이고 서로 독립적입니다. 즉, 함수가 정의되면 함수 본문에 다른 함수의 정의가 포함될 수 없습니다. 호출이 중첩될 수 있습니다.

함수 중첩 호출이란 무엇인가요?

함수를 호출하는 과정, 다른 함수를 호출하는 과정

C 언어의 함수는 각 함수의 정의가 상대적으로 독립적으로 존재하며, 함수 내부에서 다른 함수를 호출할 수도 있습니다. (main()은 포함되지 않습니다.) 기능). 이 호출 프로세스를 함수 중첩이라고 합니다(함수의 정의 부분은 중첩될 수 없음).

예:

두 정수의 최대 공약수와 최소 공배수를 구하세요.

문제 분석

두 숫자의 최소 공배수 = 두 숫자의 곱/두 숫자의 최대 공약수.

그래서 키는 최대 공약수입니다.

최대 공약수를 찾는 사고 방식:

함수 호출을 중첩할 수 있나요?

코드 구현

#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));
}

함수 구현: 두 정수 45와 56의 최소 공배수와 최대 공약수 찾기 .

함수 호출을 중첩할 수 있나요?

추천: c 비디오 튜토리얼

위 내용은 함수 호출을 중첩할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.