728x90
- 1.역할과 목적:
- 헤더파일 (.h):
- 주로 함수, 클래스, 매크로, 데이터 타입 등의 선언을 포함합니다.
- 코드의 인터페이스를 정의하여 다른 파일들이 이 파일을 통해 필요한 선언을 참조할 수 있도록 합니다.
- 여러 소스파일에서 공통적으로 사용할 수 있습니다.
- 소스파일 (.c, .cpp):
- 함수와 클래스의 구현을 포함합니다.
- 실제로 프로그램이 동작하는 로직을 담고 있습니다.
- 컴파일러가 이 파일을 컴파일하여 실행 가능한 바이너리 코드로 변환합니다.
- 헤더파일 (.h):
- 구조와 내용:
- 헤더파일:
- 주로 선언만 포함하고, 실제 구현 코드는 포함하지 않습니다.
- 예시:
-
// example.h #ifndef EXAMPLE_H #define EXAMPLE_H void hello(); // 함수 선언 #endif
- 소스파일:
- 함수와 클래스의 구체적인 구현을 포함합니다.
- 예시:
-
// example.c #include "example.h" #include <stdio.h> void hello() { printf("Hello, World!\n"); }
- 헤더파일:
- 컴파일 과정:
- 헤더파일:
- 소스파일에서 #include 지시문을 통해 포함됩니다.
- 직접 컴파일되지 않고, 포함된 소스파일의 일부로 간주됩니다.
- 소스파일:
- 컴파일러에 의해 직접 컴파일되며, 목표 파일(.o 또는 .obj)로 변환됩니다.
- 여러 소스파일이 각각 컴파일된 후, 링커에 의해 하나의 실행 파일로 결합됩니다.
- 헤더파일:
요약:
- 헤더파일은 선언을 포함하고, 소스파일은 구현을 포함합니다.
- 헤더파일은 다른 파일들에게 인터페이스를 제공하며, 소스파일은 실제 동작을 구현합니다.
- 헤더파일은 직접 컴파일되지 않고, 소스파일은 컴파일러에 의해 컴파일됩니다.
이와 같은 차이는 코드의 모듈화를 용이하게 ,재사용성을 높이고, 유지보수를 쉽게 만든다.
728x90