C언어 헤더 파일과 #include

코딩C언어
읽는데 7분 소요
처음 쓰여진 날: 2026-02-03
마지막 수정일: 2026-03-21
조회수: 213

요약

C언어의 헤더 파일, #include, 라이브러리, 전처리기 개념을 알아봅니다. stdio.h, string.h 등 자주 사용하는 표준 라이브러리 함수와 #define 매크로를 정리합니다.

핵심 정리

용어설명예시
헤더 파일함수 선언이 담긴 파일 (.h 확장자)stdio.h, string.h
#include헤더 파일을 코드에 포함시키는 전처리기 지시문#include <stdio.h>
라이브러리미리 작성된 함수들의 모음표준 라이브러리, 수학 라이브러리
#define매크로 상수를 정의하는 전처리기 지시문#define PI 3.14
전처리기컴파일 전에 소스 코드를 가공하는 단계#include, #define 처리

라이브러리란? 쌩기초

라이브러리(Library) 는 자주 사용하는 기능을 미리 만들어 놓은 함수들의 모음입니다.

직접 모든 기능을 구현하지 않아도, 라이브러리에서 제공하는 함수를 가져다 쓸 수 있습니다.

c
코드 하이라이팅 중...

C언어에는 표준 라이브러리가 기본으로 제공되어, 모든 C 컴파일러에서 동일하게 사용할 수 있습니다.


헤더 파일이란? 쌩기초

헤더 파일(Header File) 은 라이브러리 함수의 선언이 담긴 파일입니다. 확장자는 .h입니다.

헤더 파일제공하는 기능주요 함수
stdio.h입출력 (Standard I/O)printf, scanf, fopen
string.h문자열 처리strlen, strcpy, strcmp
stdlib.h일반 유틸리티malloc, free, atoi
math.h수학 연산sqrt, pow, sin, cos
ctype.h문자 판별isupper, islower, isdigit

헤더 파일에는 함수의 선언(원형) 만 있고, 실제 구현은 컴파일된 라이브러리 파일에 있습니다.

c
코드 하이라이팅 중...

위 코드에서 size_tconst char *s 같은 표현은 아직 몰라도 괜찮습니다. "함수 이름과 괄호, 세미콜론으로 끝나는 형태"라는 점만 기억하세요.

함수 선언 vs 함수 정의

함수 선언(Declaration) 은 "이런 함수가 있다"고 알려주는 것입니다. 함수 이름, 반환 타입, 매개변수 타입만 명시하고 본문(중괄호 안 코드)이 없습니다. 함수 프로토타입이라고도 부릅니다.

함수 정의(Definition) 는 함수가 실제로 무엇을 하는지 코드로 작성한 것입니다.

c
코드 하이라이팅 중...
구분함수 선언함수 정의
역할함수 존재를 알림함수 동작을 구현
본문없음 (세미콜론으로 끝)있음 (중괄호 안에 코드)
위치헤더 파일 (.h)라이브러리 파일

컴파일러는 헤더 파일의 선언을 보고 "이 함수가 존재한다"는 것을 확인합니다. 컴파일이 끝나면 링커가 자동으로 라이브러리의 정의를 찾아 연결해 줍니다. 1



#include란? 기초

#include는 헤더 파일의 내용을 현재 코드에 포함시키는 전처리기 지시문 2입니다.

c
코드 하이라이팅 중...
c
코드 하이라이팅 중...

꺾쇠괄호 vs 큰따옴표

c
코드 하이라이팅 중...
표기의미검색 위치
< >시스템 헤더컴파일러 설치 경로
" "사용자 헤더현재 디렉터리 → 시스템 경로

정보처리기사 실기에서는 대부분 표준 라이브러리(< >)만 사용합니다.


자주 사용하는 표준 라이브러리 기초

stdio.h - 입출력

c
코드 하이라이팅 중...
함수설명
printf형식화된 출력
putchar문자 한 개 출력
puts문자열 출력 + 줄바꿈
scanf형식화된 입력
fopen파일 열기
fclose파일 닫기

string.h - 문자열 처리

c
코드 하이라이팅 중...
함수설명
strlen문자열 길이 반환
strcpy문자열 복사
strcmp문자열 비교 (같으면 0)
strcat문자열 연결

stdlib.h - 일반 유틸리티

c
코드 하이라이팅 중...

위 코드에서 malloc포인터 문법이 복잡해 보여도, 지금은 "이런 함수가 stdlib.h에 있다"는 것만 알면 충분합니다. 자세한 사용법은 동적 메모리 할당에서 다룹니다.

함수설명
malloc동적 메모리 할당
free메모리 해제
atoi문자열 → 정수 변환
rand난수 생성

math.h - 수학 연산

c
코드 하이라이팅 중...
함수설명
sqrt제곱근
pow거듭제곱
abs절댓값
ceil올림
floor내림


전처리기란? 기초

전처리기(Preprocessor)컴파일 전에 소스 코드를 가공하는 단계입니다.

text
코드 하이라이팅 중...

#으로 시작하는 지시문은 모두 전처리기가 처리합니다.

지시문설명예시
#include파일 포함#include <stdio.h>
#define매크로 상수 정의#define PI 3.14
#ifdef조건부 컴파일#ifdef DEBUG

#define 예시

c
코드 하이라이팅 중...

#define으로 정의한 값은 컴파일 전에 해당 값으로 치환됩니다. MAX라고 쓰면 전처리기가 100으로 바꿔 놓는 것입니다.


정리

  1. 라이브러리: 미리 만들어진 함수들의 모음
  2. 헤더 파일: 함수 선언이 담긴 .h 파일
  3. #include: 헤더 파일을 코드에 포함시키는 전처리기 지시문
  4. #define: 매크로 상수를 정의하는 전처리기 지시문
c
코드 하이라이팅 중...

라이브러리 함수를 사용하려면 해당 헤더 파일을 #include로 포함해야 합니다.

함수의 선언과 정의를 더 자세히 알고 싶다면 함수 프로토타입 페이지를 참고하세요.


Footnotes

  1. 링커(Linker)는 컴파일된 코드 조각들을 하나의 실행 파일로 합쳐주는 프로그램입니다.

  2. 전처리기 지시문은 #으로 시작하며, 컴파일 전에 미리 처리되는 명령입니다. 자세한 내용은 아래 전처리기란? 섹션에서 다룹니다.


관련 글

(34개)
제목태그시험
C언어 구조체 배열
C언어
-
C언어 구조체 포인터
C언어
-
C언어 함수 프로토타입
C언어
-