3-4. 호출 스택

Crat3 ㅣ 2023. 5. 9. 18:32

다음과 같이 각 함수에서 다른 함수를 참조하도록 만들어보자.

void func1()
{
	cout << "Func1" << endl;
	func2(1, 2);
}

void func2(int a, int b)
{
	cout << "Func2" << endl;
	func3(10);
}

void func3(float a)
{
	cout << "Func3" << endl;

}

int main()
{
	cout << "main" << endl;
	func1();
	return 0;
}

위와 같이 코드를 만들면 func2와 func3에서 식별자를 찾을 수 없다는 오류가 발생한다.

이는 C++에서 코드가 위에서 아래로 작동되기 때문이다.

따라서 함수 선언을 먼저 하면 오류를 해결할 수 있다.

 

1. 함수 선언

void func1();
void func2(int a, int b);
void func3(float a);

void func1()
{
	cout << "Func1" << endl;
	func2(1, 2);
}

void func2() ...

이 때 매개 변수의 이름을 지정하지 않아도 된다.

함수 선언부는 별도의 파일로 관리하게 된다.

 

2. 호출 스택

디버그 할 때 중요하게 사용됨.

함수에서 어떤 함수로 이동했는지 코드의 흐름을 볼 수 있다.

 

'기초 C++ 스터디' 카테고리의 다른 글

3-7. 구조체  (0) 2023.05.10
3-5. 함수 오버로드, 기본 인자값, 스택 오버플로우  (0) 2023.05.09
3-3. 지역 변수와 값 전달  (0) 2023.05.09
3-2. 스택 프레임  (0) 2023.05.09
3-1. 함수(Function)  (0) 2023.05.09