최근 수정 시각 : 2022-12-19 19:15:30

헤더 파일

1. 개요2. 사용 방법3. 표준 라이브러리 목록
3.1. C
3.1.1. stdio.h3.1.2. time.h3.1.3. math.h3.1.4. stdlib.h3.1.5. string.h
3.2. C++
3.2.1. 기존의 C 표준 헤더(<c~>)3.2.2. iostream3.2.3. algorithm3.2.4. string

1. 개요

C 언어 C++에서 사용하는 일종의 레퍼런스. 주로 외부 소스 파일에 정의된 변수나 함수를 쓰기 위해 만들어졌다. 크게 컴파일러가 기본적으로 지원하는 표준 헤더와 사용자가 임의로 만든 사용자 헤더로 나눠진다.

2. 사용 방법

보통 소스 파일 맨 윗줄에 표기함으로써 해당 해더파일에 들어있는 요소를 사용할 수 있다.
#!syntax cpp
#include <전역 헤더 이름>
#include "상대 경로 헤더 이름"

<>는 컴파일러에서 환경에 따라 지정된 spec 경로에서 헤더를 찾거나 명시적으로 지정한 경로에서 파일을 찾지만 ""는 해당 소스 파일이 위치한 경로에서 파일을 찾기에 컴파일러 옵션 없이도 상대 경로를 사용하는 것이 가능하다. ("../common/common.h" 와 같이)

3. 표준 라이브러리 목록

3.1. C

3.1.1. stdio.h

Standard Input Output, 즉 표준 입출력을 의미한다. studio가 아니다. C언어를 처음 접하는 사람들이 많이 실수하는 부분이다. [1]

C언어의 표준 입/출력 헤더 파일로, printf나 scanf 처럼 콘솔 입/출력을 할 때, 외부 파일을 읽을 때 사용한다. 기초 프로그래밍 교육이 대부분 Hello World 출력부터 시작해, 대부분 CLI 환경을 다루는 것에 그친다는 것을 생각하면, C/C++을 배우면서 자주 보게 되는 헤더 파일이다.

3.1.2. time.h

시간 관련 부분함수 구조체를 담고있는 헤더로 시간관련 부분을 불러오거나 사용할 때 사용한다.

3.1.3. math.h

지수함수, 로그함수, 삼각함수, 거듭제곱 등 수학 관련 함수가 들어가 있다.

3.1.4. stdlib.h

문자열 변환, 의사 난수 생성, 동적 메모리 관리 등의 함수들을 포함하고 있다. 주로 프로그램 제어 관련 함수가 들어가 있다. 동적 메모리 할당 함수인 malloc, calloc 함수도 이 헤더에 포함되어 있으며, 시스템 명령어나 프로세스 제어 함수도 포함되어 있다.

3.1.5. string.h

문자열(정확히는 문자 배열 - char* str 또는 char str[]) 관련 헤더이다.
  • strcat - 문자열 합치기
  • strcmp - 문자열 비교
  • strlen - 문자열 길이
  • strcpy - 문자열 복사

등의 함수가 있다.

참고 : https://ko.wikipedia.org/wiki/Stdlib.h

3.2. C++

모든 C++의 표준 헤더 파일은 .h를 붙이지 않고도 include를 할 수 있다.

3.2.1. 기존의 C 표준 헤더(<c~>)

C 표준 헤더의 파일 이름에서 .h 부분을 제거하고 앞에 c를 붙여서 쓴다.
#!syntax cpp
#include <cstdio>

3.2.2. iostream

C++ 전용 표준 입/출력 헤더 파일이다. C의 stdio.h의 printf, scanf와 대응되는 cout, cin 객체가 있다.

터보 C++에서는 iostream.h이다.

3.2.3. algorithm

C++ 전용 알고리즘 관련 헤더다. 두 변수의 최댓/최솟값을 고르는 max, min 함수와, 리스트나 배열을 정렬하는 sort 함수 등 알고리즘과 관련된 함수를 쓸 수 있다.

3.2.4. string

C 언어의 string.h처럼 문자열을 객체 단위로 다룰 수 있는 표준 헤더다. std::string으로 타입을 선언해 함수가 아닌 연산자(+, ==)만으로 문자열끼리 더하거나 비교할 수 있다.


[1] Std는 Standard의 축약어로서, 일상적으로도 많이 사용한다.