[c언어] 함수 포인터와 함수 포인터의 배열 값을 변경하는 방법

C 프로그래밍 언어에서 함수 포인터를 사용하여 함수를 가리키는 포인터를 생성할 수 있습니다. 함수 포인터를 배열로 선언하고, 해당 배열을 사용하여 함수의 호출을 관리할 수도 있습니다. 이 글에서는 함수 포인터의 배열 값이 변경되는 방법에 대해 설명하겠습니다.

함수 포인터의 배열 정의하기

다음과 같이 함수 포인터의 배열을 선언합니다.

void (*func_ptr_array[5])(int);

위 예시에서는 int형 인수를 받고 void를 반환하는 함수를 가리키는 포인터를 가진 배열을 선언했습니다.

함수 포인터 배열 값 변경하기

함수 포인터 배열의 각 원소에 함수를 할당하여 값을 변경할 수 있습니다.

void func1(int num) {
    printf("This is function 1 with %d\n", num);
}

void func2(int num) {
    printf("This is function 2 with %d\n", num);
}

// 함수 포인터 배열 값 설정
func_ptr_array[0] = func1;
func_ptr_array[1] = func2;

위 예시에서 함수 func1func2를 함수 포인터 배열에 할당했습니다.

함수 포인터 배열 값 호출하기

설정된 함수 포인터 배열을 사용하여 함수를 호출합니다.

(*func_ptr_array[0])(10); // Function 1 호출
(*func_ptr_array[1])(20); // Function 2 호출

위 코드에서 func_ptr_array의 첫 번째 원소와 두 번째 원소인 함수를 호출합니다.

함수 포인터와 함수 포인터의 배열을 이용하면 프로그램 실행 중에 동적으로 함수를 결정하고 호출할 수 있습니다.

결론

이번 글에서는 C 언어에서 함수 포인터와 함수 포인터의 배열 값을 변경하는 방법에 대해 알아보았습니다. 함수 포인터와 배열을 조합하여 유연한 프로그래밍을 할 수 있으며, 이는 특히 콜백 함수 및 이벤트 핸들링과 같은 상황에서 유용하게 활용됩니다.

참고문헌: