#include <stdio.h>
int sum(int, int);
int main(void){
int (*fp)(int, int);
int res;
fp = sum;
res = fp(10,20);
printf("result : %d\n", res);
return 0;
}
int sum(int a, int b){
return (a + b);
}
### 코드 설명
이 프로그램은 함수 포인터를 사용하여 두 정수의 합을 계산하는 예제입니다. C언어에서 함수 포인터의 사용은 함수를 변수처럼 취급하고, 이를 통해 다양한 함수를 동적으로 호출할 수 있게 합니다.
### 함수 포인터 선언 및 사용
- `int sum(int, int);`는 두 정수를 매개변수로 받아 그 합을 반환하는 `sum` 함수를 선언합니다.
- `int (*fp)(int, int);`는 두 정수 매개변수를 받고 정수를 반환하는 함수를 가리키는 함수 포인터 `fp`를 선언합니다.
- `fp = sum;`은 `sum` 함수의 주소를 `fp` 함수 포인터에 할당합니다. 이로써 `fp`를 통해 `sum` 함수를 호출할 수 있게 됩니다.
- `res = fp(10,20);`는 함수 포인터 `fp`를 사용하여 `sum` 함수를 호출하고, 두 정수 10과 20의 합을 계산합니다. 계산된 합은 `res` 변수에 저장됩니다.
- `printf("result : %d\n", res);`는 계산된 합을 출력합니다. 이 경우 출력 결과는 "result : 30"입니다.
### 프로그램 종료
- `return 0;`은 프로그램이 성공적으로 실행되었음을 나타내며 프로그램을 종료합니다.
이 코드는 함수 포인터의 기본적인 사용 방법을 보여줍니다. 함수 포인터를 사용하면 함수를 다른 함수의 인자로 전달하거나, 배열에 함수를 저장하는 등 다양한 프로그래밍 패러다임을 구현할 수 있습니다. 함수 포인터는 콜백 함수, 이벤트 핸들러 등에서 자주 사용됩니다.
'개념 > 혼자 공부하는 C언어' 카테고리의 다른 글
chapter 16) calloc, realloc 함수를 사용한 양수 입력 (0) | 2024.09.19 |
---|---|
chapter 15) 함수 포인터로 원하는 함수를 호출하는 방법 (0) | 2024.09.18 |
chapter 15) void 포인터 사용 (0) | 2024.09.16 |
chapter 15) 포인터와 이중 포인터의 관계 (0) | 2024.09.15 |
chapter 15) 포인터 배열의 값을 출력하는 함수 (0) | 2024.09.14 |