en.subject.pdf

PDF 한국어 번역본 github

스택(stack)과 힙(heap)의 이해

[스택 stack)]
- 함수의 호출과 관계되는 지역 변수와 매개변수가 저장되는 영역
- 함수의 호출과 함께 할당되며, 함수의 호출이 완료되면 소멸

[힙(heap)]
- 사용자가 직접 관리할 수 있는, 직접 관리해야하는 메모리 영역
- 사용자에 의해 메모리 공간이 동적으로 할당되고 해제

함수 오버로딩 개념의 이해

[오버로딩 (Overloading)]
int sum (ina a, int b){return a+b;}
double sum (double a, double b){return a+b;}

=> 같은 이름을 가진 함수를 여러번 선언하여 어떤 타입의 인자가 들어오던 매칭할 수 있도록 하는 것
=> **공통 기능의 함수를 하나의 이름으로 묶어주는 것**

가변인자 개념의 이해

[가변인자]
- 포인터의 작용으로 이루어지는 것
- 인자 개수를 모르니 스택(stack)에 쌓았다가 하나씩 빼서 사용
- 결론적으로, 인자들을 배열에 저장해서 쓰는 것
- 최소 1개 이상의 고정인수가 있어야 하며 '...'은 파라미터 순서 상 가장 마지막에 위치

[예시]
#include <stdio.h>
#incldue <stdarg.h>
int sum(ins num_args, ...)
{
	va_list ap;
	va_start(ap, num_args);
	int arg = 0, result = 0;
	fot (int i=0; i<num_args; i++)
	{
		arg = va_arg(ap, int);
		result += arg;
	}
	va_end(ap);
	return result;
}

참고