본문 바로가기
개념/혼자 공부하는 C언어

chapter 15) 함수 포인터를 사용한 함수 호출

by kiseno 2024. 9. 17.
728x90
반응형
SMALL
#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;`은 프로그램이 성공적으로 실행되었음을 나타내며 프로그램을 종료합니다.

이 코드는 함수 포인터의 기본적인 사용 방법을 보여줍니다. 함수 포인터를 사용하면 함수를 다른 함수의 인자로 전달하거나, 배열에 함수를 저장하는 등 다양한 프로그래밍 패러다임을 구현할 수 있습니다. 함수 포인터는 콜백 함수, 이벤트 핸들러 등에서 자주 사용됩니다.

728x90
반응형
LIST