본문 바로가기
프로그래밍언어/C언어[초급]

[C언어][초급] Chapter33. 함수 정의 방법 – 반복되는 코드를 깔끔하게 정리하는 법

by about_IT 2025. 4. 18.
728x90

프로그래밍을 하다 보면 같은 코드를 여러 번 사용해야 하는 상황이 생깁니다.
이럴 때마다 코드를 복사해서 붙여넣기보다는, 함수로 만들면 훨씬 효율적이고 보기 좋은 코드를 작성할 수 있습니다.

C언어에서 함수는 어떤 작업을 수행하는 독립적인 코드 블록입니다.
함수를 사용하면 재사용성, 가독성, 유지보수성이 모두 좋아집니다.


● 함수 정의의 기본 구조

반환형 함수이름(매개변수) {
    // 수행할 코드
}

예시:

void hello() {
    printf("Hello, C!\n");
}
  • 반환형: 함수가 실행 후 어떤 값을 반환할지 (없으면 void)
  • 함수이름: 함수의 이름
  • 매개변수: 함수에 전달하는 값 (없으면 비워둠)

● 함수 호출 방법

정의된 함수는 함수 이름 뒤에 괄호를 붙여 호출합니다.

int main(void) {
    hello(); // 함수 호출
    return 0;
}

● 매개변수가 있는 함수

void print_number(int n) {
    printf("입력한 숫자: %d\n", n);
}

호출 예시:

print_number(42);

● 값을 반환하는 함수

int square(int x) {
    return x * x;
}

호출 예시:

int result = square(5); // result = 25

함수는 프로그램의 구조를 깔끔하게 만들고, 같은 기능을 반복 작성하지 않아도 되도록 도와줍니다.
다음 단계에서는 매개변수와 반환값을 활용한 다양한 함수 구조를 익히게 됩니다.

이제 실습 문제를 통해 함수 정의와 호출을 연습해보세요!


● 실습 문제

문제 1

인사말을 출력하는 void 함수 hello를 정의하고 호출하세요.

 

문제 2

정수를 하나 입력받아 출력하는 print_number 함수를 정의하고 호출하세요.

 

문제 3

두 정수를 더한 값을 반환하는 add 함수를 정의하고 호출 결과를 출력하세요.

 

문제 4

입력받은 정수의 제곱을 반환하는 square 함수를 정의하고, 7을 넣었을 때 결과를 출력하세요.

 

문제 5

함수를 사용하지 않고 같은 출력문을 두 번 작성한 경우와, 함수를 사용한 경우의 차이점을 설명해보세요.

 









▶ 정답 확인하기

정답 1

void hello() {
    printf("안녕하세요!\n");
}

int main(void) {
    hello();
    return 0;
}

 

정답 2

void print_number(int n) {
    printf("입력한 수: %d\n", n);
}

int main(void) {
    print_number(10);
    return 0;
}

 

정답 3

int add(int a, int b) {
    return a + b;
}

int main(void) {
    int sum = add(3, 4);
    printf("합계: %d\n", sum);
    return 0;
}

 

정답 4

int square(int x) {
    return x * x;
}

int main(void) {
    int result = square(7);
    printf("제곱: %d\n", result);
    return 0;
}

 

정답 5

함수 미사용: 같은 printf 코드를 두 번 작성해야 함
함수 사용: 한 번만 정의하고 여러 번 호출 가능, 코드 재사용성 향상

728x90