Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 프로그래밍 함수의 두 가지 유형: 라이브러리 함수와 사용자 정의 함수

C 언어에서 함수는 크게 두 가지 유형으로 분류됩니다.

  • 라이브러리 함수(사전 정의 함수)
  • 사용자 정의 함수

라이브러리 함수(Predefined / Library Functions)

  • 시스템 라이브러리에 이미 정의되어 있는 함수입니다.
  • 프로그래머는 라이브러리에 있는 기존 코드를 그대로 재사용할 수 있어 오류 없는 코드를 작성하는 데 도움이 됩니다.
  • 함수를 사용하려면 해당 함수의 문법(원형)을 알고 있어야 하며, 관련 헤더 파일을 포함해야 합니다.

예를 들어, sqrt() 함수는 math.h 헤더 파일에 정의되어 있으며, 사용 방법은 y = sqrt(x) 형태입니다. 이때 x는 반드시 양수여야 합니다.

x가 25라면 y = sqrt(25)이므로 y는 5가 됩니다.

마찬가지로 printf()는 stdio.h 헤더 파일에, clrscr()은 conio.h 헤더 파일에 정의되어 있습니다.

예제 프로그램

#include<stdio.h>
#include<conio.h>
#include<math.h>
main() {
    int x, y;
    clrscr();
    printf("enter a positive number");
    scanf("%d", &x);
    y = sqrt(x);
    printf("squareroot = %d", y);
    getch();
}

실행 결과

Enter a positive number 25
Squareroot = 5

사용자 정의 함수(User Defined Functions)

  • 프로그래머 또는 사용자가 직접 정의해야 하는 함수입니다.
  • 프로그래머가 해당 함수의 코드를 직접 작성하고, 사용하기 전에 충분히 테스트해야 합니다.
  • 함수의 문법을 사용자가 직접 정의하므로 별도의 헤더 파일을 포함할 필요가 없습니다.

예를 들어 main(), swap(), sum() 등이 대표적인 사용자 정의 함수입니다.

예제 프로그램

#include<stdio.h>
#include<conio.h>
main() {
    int sum(int, int);
    int a, b, c;
    printf("enter 2 numbers");
    scanf("%d %d", &a, &b);
    c = sum(a, b);
    printf("sum = %d", c);
    getch();
}
int sum(int a, int b) {
    int c;
    c = a + b;
    return c;
}

실행 결과

Enter 2 numbers 10 20
Sum = 30

정리

라이브러리 함수는 컴파일러와 함께 제공되는 헤더 파일에 미리 구현되어 있어 즉시 호출하여 사용할 수 있으며, 개발 시간을 단축하고 안정성을 높여 줍니다. 반면 사용자 정의 함수는 개발자가 필요에 따라 직접 설계하고 구현하는 함수로, 프로그램의 목적에 맞는 기능을 자유롭게 만들 수 있다는 장점이 있습니다. 두 유형의 함수를 적절히 활용하면 코드의 재사용성과 가독성을 모두 향상시킬 수 있습니다.