라이브러리 함수는 외부 라이브러리의 일부로 제공되는 함수이고 반대로,
사용자 정의 함수는 프로그래머가 특정 작업을 수행하기 위해 직접 작성하는 함수이다.
ex)
// 두 수 중에서 큰 수를 반환하는 함수
#include <stdio.h>
int get_max(int a, int b) {
if(a > b) return(a);
else return(b);
}
int main(void) {
int x, y;
printf("두 개의 정수를 입력하세요: ");
scanf("%d %d", &a, &b);
printf("두 수 중에서 큰 수는 %d입니다\n", get_max(x, y));
return 0;
}
// 정수를 입력받는 함수
#include <stdio.h>
int get_integer() {
int number;
printf("정수를 입력하세요: ");
scanf("%d", &number);
return number;
}
int add(int x, int y)
{
return x + y
}
int main(void) {
int x = get_integer();
int y = get_integer();
int sum = add(x, y)
printf("두 수의 합은 %d입니다.\n", sum);
return 0;
}
// 팩토리얼 함수 예제
#include <stdio.h>
int factorial(int n) {
long result = 1;
for (int i = 1; i <= n; i++) {
result *= i;
}
return result;
}
int main(void) {
int n;
printf("정수를 입력하세요: ");
scanf("%d", &n);
printf("%d! = %d\n", n, factorial(n));
return 0;
}
함수 원형(function prototyping ) = 함수의 프로토타이핑
: 컴파일러에게 함수에 대하여 미리 알리는 것이다.
- 함수의 정의가 함수 호출보다 먼저 오면 함수 원형을 정의하지 않아도 된다. ** -> 실무
#include <stdio.h>
// 함수 프로토타입 선언
int add(int a, int b);
int main() {
int num1 = 10;
int num2 = 20;
// 함수 호출
int result = add(num1, num2);
printf("더한 결과: %d\n", result);
return 0;
}
// 함수 정의
int add(int a, int b) {
return a + b;
}
- C 언어에서 함수는 먼저 선언되지 않으면 호출할 수 없다.
- 함수가 호출되는 위치가 함수의 정의보다 앞서면 컴파일러는 해당 함수를 알 수 없기 때문에 오류가 발생한다.
- 이를 해결하기 위해 함수 프로토타입을 사용하여 컴파일러에게 함수의 존재를 미리 알린다.
- 함수 프로토타입 선언은 컴파일러가 함수 호출을 인식하고 올바르게 처리할 수 있도록 도와준다.
- 특히, 함수가 사용되는 위치가 함수의 정의보다 앞설 때 유용하다.
'C Language' 카테고리의 다른 글
C언어 static, register, volatile 지정자 개념 (2) | 2024.06.19 |
---|---|
C언어 전역변수와 지역변수, 매개변수(+가변매개변수)의 개념 (2) | 2024.06.19 |
C언어 라이브러리의 rand() 함수 (0) | 2024.06.18 |
C언어 Basic 반복문 while, for 개념 (0) | 2024.06.18 |
C언어 Basic 조건문 if, switch 개념 (0) | 2024.06.18 |