Function Trace

함수 호출과 변수 수명

반환값, 매개변수 전달 방식, 저장 기간을 나눠 보면 함수 문제의 출력과 원본 변경 여부가 선명해진다.

call

선언, 정의, 호출

원형은 약속, 정의는 실제 코드, 호출은 실행 요청이다. return 뒤의 실행 흐름도 함께 확인한다.

copy

값에 의한 전달

일반 매개변수는 값을 복사해 받는다. 함수 안에서 바꿔도 호출한 쪽 변수는 그대로 남는다.

addr

주소로 원본 변경

원본을 바꾸려면 주소를 넘기고 포인터로 접근한다. &*의 위치를 표시한다.

life

저장 기간

지역 변수는 블록 안에서만 살고, 전역 변수는 파일 전체에서 보인다. static 지역 변수는 값이 유지된다.

rec

재귀 종료 조건

재귀는 자기 자신을 호출한다. 종료 조건과 호출 때마다 줄어드는 값을 먼저 찾는다.