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 함수도 이 헤더에 포함되어 있으며, 시스템 명령어나 프로세스 제어 함수도 포함되어 있다.참고 : 위키피디아 Stdlib.h 문서
3.1.5. string.h
문자열(정확히는 문자 배열 - char* str 또는 char str[]) 관련 헤더이다.- strcat - 문자열 합치기
- strcmp - 문자열 비교
- strlen - 문자열 길이
- strcpy - 문자열 복사
등의 함수가 있다.
참고 : 위키피디아 C 문자열 처리 문서
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의 축약어로서, 일상적으로도 많이 사용한다.