(a) 스택 영역
(b) 데이터 영역
(c) ROM 영역(읽기 전용, ex-*코드)
(d) 힙 영역
[func.h]
//선언
int Add(int a, int b);
[func.cpp]
//정의
#include "func.h"
int Add(int a, int b)
{
return a+b;
}
💡 main()에서 위 함수를 사용하고 싶다면, 해당 파일에서 func.h 파일을 include하면 된다.
(실제 구현 내용은 func.cpp에 있지만, 링크 단계에서 합쳐지므로 문제없음)
#include : 전처리 지시자. 전처리 단계에서, 포함(include)된 파일의 내용을 지시자의 위치에 그대로 복사한다.
#include <filename>
<> 는 컴파일러에서 제공하는 기본 헤더 파일을 include할 때 사용한다.#include "filename"
""는 소스 파일이 있는 디렉터리에서 헤더 파일을 include하도록 전처리기에게 지시한다.
보통 자신이 직접 작성한 헤더 파일을 include할 때 이 방법을 쓴다.
[참고] 지역 / 전역 변수 포스트
🤔 헤더 파일에 정의까지 다 해버리면 안 될까?
-> 할 수는 있지만 링크 단계에서 문제 발생
[참고]
https://youtu.be/ckwQxpWKjxs
https://boycoding.tistory.com/145