One Step Two Step
[C언어 기초] 프로그램을 구성하는 핵심 부품, '함수(Function)' 본문
반응형
- 함수(Function): 입력(input)을 받아서 특정한 작업을 수행하여 결과를 반환(return)
-
장점
- 코드의 재사용성: 똑같은 코드를 여러 번 복사 붙여 넣기 X
- 유지보수 용이: 특정 기능에 문제가 생기면 그 함수만 수정
- 가독성 향상: main 함수가 깔끔해져서 프로그램의 전체 흐름을 파악하기 좋음
- 종류
- 사용자 정의 함수: 개발자가 함수를 직접 개발
- 라이브러리 함수: 기본적으로 제공되는 함수
- 함수 원형 (function prototype)
- 컴파일러에게 함수에 대해 미리 알리는 것
- 함수 원형 선언 안할 시에는 무조건 main 함수 위에 다른 함수를 작성해야 함
- 기본 구조
#include <stdio.h> // 1. 함수 선언(함수 원형) int add(int a, int b); // 반환형 함수이름(매개변수1, 매개변수2, ...); int main(void) { int result; // 2. 함수 호출 result = add(5, 3); printf("결과: %d\n", result); return 0; } // 3. 함수 정의 int add(int a, int b) { // 반환형 함수 이름 (매개변수) return a + b; // 함수 몸체 }
-
- 인수 VS 매개변수
- 매개변수 (parameter)
-
함수를 정의할 때 사용하는 변수
-
외부에서 전달될 값을 함수 내부로 연결해 주는 통로
-
인수의 값이 전달되어 똑같은 값을 가질 뿐 똑같은 개념은 아님
- 함수 내부에서만 살아있는 지역 변수
-
- 인수 (argument)
- 함수를 호출할 때 실제로 전달하는 값
- 매개변수에 복사되어 들어갈 실제 데이터
- 숫자, 문자, 변수, 다른 함수의 결과값이 될 수도 있다.
- 매개변수 (parameter)

- 라이브러리 함수 ( library function )
-
컴파일러에서 제공하는 함수 ☞ printf(), scanf(), sqrt(), time(), ...
- "math.h" 라이브러리 함수
-

문제 1. 이진수를 출력하는 프로그램을 작성하시오.
int_get_number(); > 사용자로부터 정수를 입력받는 함수
void print_binary(int); > 이진수를 출력하는 함수
정수를 입력하시오: 33
100001
더보기
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h> // "stdio.h", "math.h" 라이브러리 함수 사용
int get_number(void); //"get_number" 함수 원형 선언
void print_binary(int x); //"print_binary" 함수 원형 선언
int main(void) {
int Input = get_number();
print_binary(Input);
printf("\n");
return 0;
}
int get_number() {
int n;
printf("정수를 입력하시오: ");
scanf("%d", &n);
return n;
}
void print_binary(int x) {
if (x > 0) {
print_binary(x / 2);
printf("%d", x % 2);
}
}
반응형
'복습 > C언어' 카테고리의 다른 글
| [C언어 기초] 데이터의 묶음! 배열과 다차원 배열, 그리고 정렬 (0) | 2026.03.03 |
|---|---|
| [C언어 기초] 변수의 생존 범위와 함수 스스로를 부르는 '순환 호출' (1) | 2026.03.02 |
| [C언어 기초] 반복문 "while" / "do...while" / "for" (0) | 2026.02.28 |
| [C언어 기초] "if", "switch" 그리고 "goto"라는 조건문 (0) | 2026.02.27 |
| [C언어 기초] 수식과 연산자 (0) | 2026.02.26 |