C언어 함수 프로토타입

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

요약

C언어 함수 프로토타입(Function Prototype)의 개념과 사용법을 알아봅니다. 함수 선언과 정의의 차이, 프로토타입이 필요한 경우와 작성 방법을 정리합니다.

이 글은 함수의 기초를 이해하고 있다는 전제로 작성되었습니다. 매개변수반환값이 아직 익숙하지 않다면 함수 페이지를 먼저 읽어보세요.

함수 프로토타입 핵심 정리

개념설명예시
함수 프로토타입함수의 반환형, 이름, 매개변수 타입만 미리 선언하는 것int gamja(int, int);
필요한 이유컴파일러 1가 코드를 첫째 줄부터 순서대로 읽기 때문에, 함수 정의가 호출보다 아래에 있으면 함수를 모름함수 정의가 main 아래에 있을 때
작성 방법함수 정의에서 본문을 빼고 세미콜론(;)으로 끝냄int gamja(int a, int b);

함수 프로토타입이란? 쌩기초

함수 프로토타입 (Function Prototype)은 함수를 미리 선언하는 것입니다. "이런 함수가 아래에 있으니 사용해도 된다"고 컴파일러에게 알려주는 역할입니다.

prototype은 "원형", "시제품"이라는 뜻입니다. 제품을 만들기 전에 미리 만드는 시제품처럼, 함수의 전체 코드를 작성하기 전에 이름, 매개변수, 반환형만 미리 알려주는 것이 함수 프로토타입입니다.


프로토타입 없이 사용하는 경우 쌩기초

함수 정의가 호출보다 위에 있으면 프로토타입 없이도 정상 작동합니다. 컴파일러가 코드를 위에서 아래로 읽기 때문에, main에서 gamja를 호출할 때 이미 gamja를 알고 있습니다.

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

프로토타입이 필요한 경우 기초

함수 정의가 호출보다 아래에 있으면, 컴파일러가 함수를 모르기 때문에 프로토타입이 필요합니다.

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

프로토타입 작성 방법 기초

함수 정의에서 본문을 빼고 세미콜론(;)만 붙이면 됩니다.

c
코드 하이라이팅 중...
구분형태본문세미콜론
프로토타입 (선언)int gamja(int a, int b);없음있음
함수 정의int gamja(int a, int b) { ... }있음없음

프로토타입과 헤더 파일 기초

printf, scanf 같은 표준 함수를 사용할 때 #include <stdio.h>를 작성하는 이유도 같은 원리입니다. stdio.h 헤더 파일에는 printf 등의 프로토타입이 들어 있어서, 컴파일러가 이 함수들을 알 수 있게 됩니다.

즉, #include는 다른 파일에 있는 프로토타입을 가져오는 것입니다.


Footnotes

  1. 컴파일러는 사람이 작성한 코드를 컴퓨터가 실행할 수 있는 형태로 번역하는 프로그램입니다.


관련 글

(35개)
제목태그시험
C언어 함수 포인터 (Function Pointer)
C언어
-
C언어 구조체 배열
C언어
-
C언어 구조체 포인터
C언어
-