[c언어] 함수 포인터와 함수 포인터의 배열의 참조를 값으로
C 언어에서 함수 포인터와 함수 포인터 배열은 매우 유용하게 사용될 수 있습니다. 이들은 함수를 가리키는 포인터로, 함수를 호출하거나 다른 변수에 저장할 수 있게 해줍니다.
함수 포인터
함수 포인터는 특정 함수의 메모리 주소를 저장하는 포인터입니다. 이를 사용하면 프로그램 내에서 동적으로 함수를 선택하여 호출할 수 있습니다.
#include <stdio.h>
int add(int a, int b) {
return a + b;
}
int main() {
int (*ptr)(int, int);
ptr = add;
int result = ptr(3, 4);
printf("%d\n", result); // 출력: 7
return 0;
}
위의 예제에서 ptr
은 add
함수를 가리키는 함수 포인터입니다. 이를 사용하여 add
함수를 호출할 수 있습니다.
함수 포인터 배열의 참조
함수 포인터 배열은 동일한 시그니처를 가진 여러 함수를 가리키는 포인터들의 배열입니다. 배열의 각 요소는 다른 함수를 가리킬 수 있습니다.
#include <stdio.h>
int add(int a, int b) {
return a + b;
}
int subtract(int a, int b) {
return a - b;
}
int main() {
int (*ptr[2])(int, int) = {add, subtract};
int result1 = ptr[0](5, 3);
int result2 = ptr[1](5, 3);
printf("%d\n", result1); // 출력: 8
printf("%d\n", result2); // 출력: 2
return 0;
}
위의 예제에서 ptr
은 add
함수와 subtract
함수를 가리키는 함수 포인터 배열입니다. 배열의 각 요소를 통해 해당 함수를 호출할 수 있습니다.
함수 포인터와 함수 포인터 배열은 함수 포인터를 배열에 저장해 놓고 필요할 때 이를 참조하는 데 유용하게 사용될 수 있습니다. 이것은 특히 콜백 함수를 다루거나 유연한 동작을 구현할 때 유용합니다.
이 문서에서는 C 언어에서 함수 포인터와 함수 포인터 배열을 선언하고 사용하는 방법을 살펴보았습니다. 함수 포인터를 사용하면 동적으로 함수를 호출하거나 배열에 저장하여 필요할 때 사용할 수 있습니다.