작성하는 모든 함수를 한 소스코드에 선언하고 사용하는 것은 유지보수를 어렵게 한다.
그래서 헤더파일을 직접 생성해 이러한 부담을 줄여줘야 하는데,
두 정수를 더해 리턴하는 add(int x, int y)를 포함하고 있는 헤더파일을 만들고 적용시켜보자
1. 헤더파일 add.h 작성
header guard는 main.h 에서 식별자를 중복으로 사용하는 것을 막기 위한 것으로
ADD_H 가 이미 정의되지 않았을 때 #if 1
ADD_H 가 이미 정의되었을 때 #if 0
이 되면서 중복 사용 문제를 해결한다.
**조건부 컴파일 지시자 사용
https://20201215.tistory.com/97
(ifndef : if not defined / ifdef : if defined)
// 1. header guard
#ifndef ADD_H
#define ADD_H
// 2. .h 파일의 실제 내용: declariation
int add(int x, int y); // add() 함수 원형(function prototype)
... //추가로 함수원형을 더 생성해도 된다.
// 3.
#endif
2. add.cpp 작성
int add(int x, int y)
{
return x + y;
}
3. main 에서 호출
#include <iostream>
#include "add.h" // add.h 헤더파일 포함
int main()
{
std::cout << "The sum of 3 and 4 is " << add(3, 4) << std::endl;
return 0;
}
4. 결론
컴파일러가 #include "add.h" 를 컴파일하면 add.h의 내용을 현재 파일의 그 라인 시점에 복사한다.
컴파일, 링크되는 과정은 다음과 같다.
'C++' 카테고리의 다른 글
[C++] Type Casting (0) | 2024.01.16 |
---|---|
[C++] boolalpha 사용해서 true/false 출력하기 (0) | 2024.01.16 |
[C++] 부동 소수점 숫자의 정밀도(Precision) (0) | 2024.01.16 |
[C++] 고정 너비 변수 (Fixed Width Integers) (0) | 2024.01.16 |
[C++] 조건부 컴파일(Conditional compilation) (0) | 2024.01.15 |