C_C++

(C언어) 함수 포인터 예제

고니자니 2023. 5. 14. 15:01
반응형

다음은 함수 포인터를 사용하는 간단한 C언어 예제입니다.

#include <stdio.h>

// 두 정수를 더하는 함수
int add(int a, int b) 
{
    return a + b;
}

// 두 정수를 빼는 함수
int subtract(int a, int b) 
{
    return a - b;
}

int main() 
{
    int (*operation)(int, int); // 함수 포인터 선언

    // 덧셈 함수를 가리키는 함수 포인터 변수 설정
    operation = &add;
    printf("2 + 3 = %d\n", operation(2, 3));

    // 뺄셈 함수를 가리키는 함수 포인터 변수 설정
    operation = &subtract;
    printf("5 - 1 = %d\n", operation(5, 1));

    return 0;
}

함수 포인터

 

위 예제에서 int (*operation)(int, int);은 함수 포인터를 선언하는 부분입니다.

int (*operation)(int, int)은 "인자로 두 개의 int형 값을 받아 int형 값을 반환하는 함수 포인터 변수 operation"을 의미합니다.

 

operation = &add;
operation = &subtract;

위 코드는 각각 함수 포인터 변수를 덧셈 함수와 뺄셈 함수로 설정하는 부분입니다.

함수 포인터 변수 operation은 &add나 &subtract와 같은 함수의 메모리 주소를 가리킵니다.

 

printf("2 + 3 = %d\n", operation(2, 3));
와 printf("5 - 1 = %d\n", operation(5, 1));

함수 포인터 변수 operation이 가리키는 함수를 호출합니다.
함수 포인터 변수 operation에 2와 3을 전달한 결과를 출력하고, 그 다음에는 함수 포인터 변수 operation에 5와 1을 전달한 결과를 출력합니다.

 

 

반응형