C언어 사용자 정의 함수 기초

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

요약

C언어 사용자 정의 함수의 정의, 호출, 선언(프로토타입) 3단계와 main에서의 호출 흐름을 정보처리기사 실기 기출문제(c_2026-1_11)와 함께 정리합니다.

사용자 정의 함수 핵심 정리

단계설명예시
함수 정의함수의 동작을 작성하는 것int add(int a, int b) { return a + b; }
함수 호출정의된 함수를 실행하는 것add(3, 5)
함수 선언 (프로토타입)본문 없이 이름·매개변수·반환형만 적은 한 줄. 정의가 호출보다 아래에 있을 때만 필요int add(int, int);

사용자 정의 함수란? 쌩기초

함수의 기초에서 본 것처럼, C 프로그램은 항상 main 함수에서 시작합니다. 그리고 main 안에서 개발자가 직접 만든 함수를 호출할 수 있는데, 이렇게 직접 만든 함수를 사용자 정의 함수라고 합니다.

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

프로그램 실행 흐름: main에서 시작 → add(3, 5) 호출 시 위쪽 add 함수로 점프 → return a + b;가 8을 반환하면 다시 main으로 돌아와 result에 저장 → printf로 출력.

main에서 add 함수로 점프했다가 반환값 8을 들고 돌아와 result에 저장되는 흐름
main → add → main 호출/반환 흐름. 호출 자리 add(3, 5)가 반환값 8로 치환됩니다.
종류설명
main 함수프로그램의 시작점. 모든 C 프로그램에 반드시 하나
사용자 정의 함수개발자가 직접 만든 함수. main에서 호출
라이브러리 함수printf, scanf처럼 표준 라이브러리에 이미 정의된 함수

함수의 3단계 - 정의 / 호출 / (필요할 때) 선언 쌩기초

사용자 정의 함수를 사용하려면 정의 → 호출 두 단계만 있으면 충분합니다. 함수 정의가 main보다 아래에 있는 경우에만 선언(프로토타입)이 추가로 필요합니다.

1. 함수 정의

함수가 실제로 어떤 일을 하는지 작성하는 부분입니다.

c
코드 하이라이팅 중...
c
코드 하이라이팅 중...
구성 요소의미예시에서
반환형돌려주는 값의 자료형int
함수명함수의 이름add
매개변수외부에서 받는 입력값int a, int b
본문실제 동작return a + b;

2. 함수 호출

정의된 함수를 실행하는 부분입니다. 함수 이름 뒤에 괄호를 붙이고 인자(괄호 안에 적어 전달하는 값)를 전달합니다.

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

add(3, 5)를 호출하면 a, b라는 새 변수가 만들어지고 거기에 3, 5가 각각 복사됩니다. 함수가 실행된 뒤 반환값 8이 add(3, 5) 자리에 들어가서 int result = 8;과 같아집니다.

multiply(4, 7) 호출 시 인자 4와 7이 매개변수 x, y에 복사되는 과정
인자가 매개변수로 복사되는 과정 — 호출 자리의 값이 새 변수에 복제되어 들어갑니다.

매개변수가 호출 인자를 어떻게 복사받는지, 반환값이 어떻게 호출 자리를 채우는지에 대한 상세 설명은 함수 기초 - 매개변수와 반환값을 참고하세요. 원본이 변경되지 않는 Call by Value도 함께 보면 좋습니다.

3. 함수 선언 (프로토타입) - 필요할 때만

함수 정의가 main보다 아래에 있으면, 호출 전에 본문 없이 이름·매개변수·반환형만 적은 한 줄(프로토타입)을 미리 적어줍니다.

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

작성 방법, 헤더 파일과의 관계, 시험 출제 패턴은 함수 프로토타입 페이지에서 다룹니다.


매개변수 · 반환값 · void 함수 쌩기초

매개변수와 반환값의 동작 원리, 반환형 종류(int/double/char/void), void 함수와 return; 중간 종료는 함수 기초 페이지의 다음 섹션에서 다룹니다.

C에서 자료형별 반환형 선택(형변환, 정수/실수 나눗셈)이 헷갈리면 함께 읽어보세요.


main에서 함수 호출 흐름 기초

여러 사용자 정의 함수가 있는 코드는 main부터 읽고, 함수를 만나면 그 정의로 이동해서 인자값을 매개변수에 대입한 뒤 분석합니다.

풀이 순서

  1. main부터 읽기 - 프로그램은 항상 main에서 시작합니다
  2. 함수 호출을 만나면 이동 - 호출된 함수의 정의로 이동합니다
  3. 인자값을 매개변수에 대입 - 실제 전달된 값을 매개변수에 넣고 분석합니다
  4. return값을 호출 위치에 대입 - 반환값을 호출한 자리에 넣고 계속 읽습니다
함수 호출 풀이 순서 4단계 다이어그램
main부터 시작 → 함수 호출 시 정의로 이동 → 인자값을 매개변수에 대입 → return값을 호출 위치에 대입 → 다시 main으로 복귀

정보처리기사 실기 대비 팁 기초

  • main부터 읽기: 함수 정의가 위에 길게 있어도 먼저 main을 읽고, 호출되는 순서대로 함수로 이동하면서 분석합니다
  • 인자 → 매개변수 복사: 호출 시 전달한 값이 매개변수에 그대로 복사된다는 점이 핵심입니다 (Call by Value)
  • 반환형 확인: int인지 double인지 void인지에 따라 출력 서식 지정자(%d, %f, 출력 자체)가 달라집니다
  • 배열 매개변수 표기: int p[]int *p는 동일하므로, 표기가 다르다고 다른 동작이라고 오해하지 않기 (포인터 산술)

정보처리기사 실기 기출 문제

관련 글

(41개)
제목태그시험
C언어 형변환 (Casting)
C언어
-
C언어 연결 리스트 뒤집기 (Reverse Linked List)
C언어
-
C언어 sizeof 연산자
C언어
-
C언어 사용자 정의 함수 기초 | 정처기 감자