함수 호출은 중첩될 수 있지만 함수 정의는 중첩될 수 없습니다. 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!