[C 강좌] 헤더 파일

Windows/TIP 2021. 2. 9. 23:11
728x90

컴파일러에서 지원하는 함수를 사용하기 위해서는 먼저 그 함수의 정의를 포함하는 헤더 파일을 포함해야합니다.

(포함 방법은 이전 강좌에서 설명한 선행처리기 #Include를 사용합니다)

컴파일러의 지원 함수뿐만 아니라 프로그래머가 제작한 함수라도, 그 사용빈도가 높다면 헤더파일로 제작하여 소스 파일에 추가하는 방법을 사용합니다. 헤더 파일을 사용하면 중복되는 내용을 여러번 코딩할 필요가 없어져 보다 편리하게 작업할 수 있습니다.

 

아래는 컴파일러에서 지원하는 표준 헤더 파일 중 자주 사용하는 것을 정리한 표입니다.

 헤더 파일

 설명

 대표 함수

 stdio.h  표준 입출력 함수 정의  printf, scanf
 conio.h  콘솔 입출력 함수 정의  getch
 string.h  문자열 처리 함수 정의  strcpy, strlen
 math.h  수학 함수 정의  cos, sin, tan, pow
 mem.h  메모리 처리 함수 정의  memcpy
 time.h  시간 관련 함수 정의  time, localtime
 stdlib.h  기타 함수 정의  rand, exit, system

 

선행처리기에 의해 소스 파일에 추가된 헤더 파일은 컴파일 과정에서 헤더 파일에 포함된 선행처리기에 따라 컴파일러에게 필요한 몇가지 정보를 제공하며, 컴파일러는 소스 파일의 앞부분에 헤더 파일의 내용을 추가합니다.

 

헤더 파일에서 선언한 함수나 변수는 헤더 파일을 추가한 소스 파일에서도 사용할 수 있습니다.

(단, 함수또는 변수 선언시에 private 등으로 외부의 접근을 차단했다면 사용할 수 없습니다)

헤더 파일은 또 다른 헤더 파일을 선행처리기를 통해 참조할 수 있으며, 소스 파일은 헤더 파일과 그것이 참조한 헤더 파일까지 사용할 수 있습니다.

 

헤더 파일을 참조하여 사용하다 보면, 헤더 파일이 중복 참조되어 함수나 변수가 중복 선언될 위험이 생기게 됩니다.

그 경우 컴파일 에러가 생기므로 표준 헤더 파일들은 중복 선언을 막기 위해 선행처리기를 이용하여 변수를 선언합니다.

이 때 #if, #elif, #else, #endif 등의 선행처리기를 사용하는데, 일반 If 문과 역할이 비슷하나 선행처리기이므로 함수 블록 내에서 사용되지 않고 소스 코드의 앞부분에서 사용되며 컴파일시 처리되는 부분입니다.

 

헤더 파일의 내부 내용은 일반 소스 파일과 다른 것이 없습니다.

다만 확장자가 .h이며, 변수 선언 시 중복 선언을 고려하여 선행처리기를 사용합니다.

반응형

'Windows > TIP' 카테고리의 다른 글

커널(Kernal)이란  (0) 2021.02.09
호스트파일 변조  (0) 2021.02.09
하드 디스크 용량별 구분  (0) 2021.02.09
유니코드표  (0) 2021.02.09
컴퓨터 부팅시 Missing Operating System 또는 Operating System Not Found 문제  (0) 2020.01.01