정처기 감자정처기 감자
C언어함수

검색

검색어를 입력해 개념, 문제, 필기를 찾습니다.

C언어 헤더 파일과 #include

코딩C언어
읽는데 7분 소요
처음 쓰인 날: 2026-02-03
마지막 수정일: 2026-03-21
조회수: —
선수학습(1개)
  • 함수의 기초

요약

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_t나 const char *s 같은 표현은 아직 몰라도 괜찮습니다. "함수 이름과 괄호, 세미콜론으로 끝나는 형태"라는 점만 기억하세요.

함수 선언 vs 함수 정의

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

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

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

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


#include란?

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

c
코드 하이라이팅 중…
#include를 빠뜨리면 컴파일 오류가 발생합니다
라이브러리 함수를 사용하려면 반드시 해당 헤더 파일을 #include로 포함해야 합니다. 시험에서 #include가 생략된 코드가 나오면, 출제자가 의도적으로 생략한 것이므로 무시하고 풀면 됩니다.
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으로 바꿔 놓는 것입니다.

#define에는 세미콜론을 붙이지 않습니다
#define MAX 100;처럼 세미콜론을 붙이면 세미콜론까지 치환되어 오류가 발생할 수 있습니다. #define은 대입문이 아니라 치환 규칙입니다.

정리

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

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

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


정보처리기사 실기 대비 문제

문제를 불러오는 중이에요.

Footnotes

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

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


메가커피와 함께, 홈페이지 개선에 참여하세요! ☕
혹시 이용에 불편한 점이나 개선이 필요한 부분을 발견하셨나요? 댓글로 알려주시면 더 나은 감자가 될 수 있어요! 🥔 제보해주신 모든 분께 메가커피 기프티콘을 드립니다! (본인 이메일로 댓글 달아주셔야해요~)

관련 글

(41개)
제목태그업데이트시험
C언어 형변환 (Casting)
C언어코딩C언어
2026-05-15-
C언어 연결 리스트 뒤집기 (Reverse Linked List)
C언어코딩C언어
2026-05-06-
C언어 사용자 정의 함수 기초
C언어코딩C언어
2026-05-06-
C언어41개
제목태그업데이트시험
C언어 형변환 (Casting)
C언어코딩C언어
2026-05-15-
C언어 연결 리스트 뒤집기 (Reverse Linked List)
C언어코딩C언어
2026-05-06-
C언어 사용자 정의 함수 기초
C언어코딩C언어
2026-05-06-
C언어 sizeof 연산자
C언어코딩C언어
2026-05-06-
C언어 이진 트리 (Binary Tree)
C언어코딩C언어
2026-04-24-
C언어 중첩 구조체와 포인터 접근
C언어코딩C언어
2026-04-24-
C언어 함수 포인터 (Function Pointer)
C언어코딩C언어
2026-04-24-
배열 C언어 코딩 감자시험
감자시험C언어배열감자시험
2026-03-28응시
C언어 왕감자 정보처리기사 실기 모의 시험
C언어C언어
2026-03-27응시
제어문/반복문 C언어 코딩 감자시험
감자시험C언어제어문반복문
2026-03-28응시
연산자 C언어 코딩 감자시험
감자시험C언어연산자감자시험
2026-03-28응시
포인터 C언어 코딩 감자시험
감자시험C언어포인터감자시험
2026-03-28응시
문자열 C언어 코딩 감자시험
감자시험C언어문자열감자시험
2026-03-28응시
구조체 C언어 코딩 감자시험
감자시험C언어구조체감자시험
2026-03-28응시
C언어 구조체 배열
C언어코딩C언어
2026-03-21-
C언어 구조체 포인터
C언어코딩C언어
2026-04-24-
C언어 함수 프로토타입
C언어코딩C언어
2026-03-21-
C언어 입력 함수 - scanf, getchar, gets
C언어코딩C언어
2026-03-21-
C언어 출력 함수 - putchar, printf, puts
C언어코딩C언어
2026-09-29-
C언어 문자열 포인터 (char *)
C언어코딩C언어
2026-03-21-
C언어 포인터 산술 (Pointer Arithmetic)
C언어코딩C언어
2026-03-21-
C언어 재귀함수 (Recursion)
C언어코딩C언어
2026-03-21-
C언어 선택정렬 (Selection Sort)
C언어코딩C언어
2026-02-10-
C언어 스택 (Stack) - LIFO 자료구조
C언어코딩C언어
2026-03-21-
C언어 2차원 배열
C언어코딩C언어
2026-03-21-
C언어 원형 큐 (Circular Queue)
C언어코딩C언어
2026-03-21-
C언어 ctype.h 문자 판별 함수
C언어코딩C언어
2026-03-21-
C언어 자료형
C언어코딩C언어
2026-05-15-
C언어 이중 포인터 (Double Pointer)
C언어코딩C언어
2026-03-21-
C언어 동적 메모리 할당 (malloc, free)
C언어코딩C언어
2026-05-04-
C언어 연결 리스트 (Linked List)
C언어코딩C언어
2026-05-06-
C언어 포인터 배열과 2차원 배열
C언어코딩C언어
2026-03-24-
C언어 포인터의 기초
C언어코딩C언어
2026-06-25-
C언어 큐 (Queue) - FIFO 자료구조
C언어코딩C언어
2026-03-21-
C언어 static 변수 - 값이 유지되는 변수
C언어코딩C언어
2026-03-21-
C언어 포인터를 이용한 문자열 복사
C언어코딩C언어
2026-07-09-
C언어 문자열 뒤집기 (포인터 활용)
C언어코딩C언어
2026-03-21-
C언어 구조체
C언어코딩C언어
2026-03-20-
C언어 삼항 연산자
C언어코딩C언어
2026-03-21-
C언어 typedef - 자료형에 새 이름 붙이기
C언어코딩C언어
2026-03-21-
전설의 완전수 문제 - C언어
C언어코딩C언어
2025-09-12-
정처기 감자정처기 감자

정보처리기사 합격
도와줄라고 하는 감자

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 3회 이론 압축
  • 26년 3회 코딩 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 3회 이론 압축
  • 26년 3회 코딩 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매
© 2025 재현기획개발. All rights reserved.
  • 정처기 감자의 시작
  • 업데이트 로그
  • 개인정보 처리방침
  • 이용약관
상호명 : 재현기획개발 / 주소: 서울특별시 영등포구 영등포로 150, 지하1층 108호 L145 가라지(당산동1가, 생각공장 당산) / 대표: 김재현 / 전화: 010-8158-7127 / 통신판매업신고: 제2025-서울영등포-1569호 / 이메일: contact@edugamja.com / 사업자등록번호: 573-51-00999