.h 파일과 .c 파일

.h 파일과 .c 파일의 역할

C 프로젝트에서는 보통 헤더 파일 .h에 외부에 공개할 선언을 두고, 소스 파일 .c에 구현을 둔다. 선언과 구현을 나누면 여러 소스 파일이 같은 인터페이스를 공유할 수 있다.




파일주요 내용
.h함수 선언, 구조체와 열거형 정의, 매크로, extern 선언
.c함수와 전역 변수의 실제 구현




컴파일 과정

#include는 컴파일 전에 전처리기가 헤더 내용을 현재 소스 파일에 포함하는 과정이다. 컴파일러가 헤더 이름을 보고 연결된 .c 파일을 자동으로 찾는 방식은 아니다.




각 .c 파일은 개별 오브젝트 파일로 컴파일되고, 마지막에 링커가 함수와 변수의 구현을 연결한다. 헤더에 선언만 있고 구현이 링크 대상에 없다면 링크 오류가 발생한다.




// motor.h
void Motor_Start(void);

// motor.c
#include "motor.h"
void Motor_Start(void) {
  // implementation
}




헤더 파일에는 include guard 또는 #pragma once를 넣어 같은 선언이 여러 번 포함되는 문제도 막아야 한다.

Comments

댓글을 불러오고 있습니다.