[c언어] 함수 포인터와 함수 포인터의 배열
C언어에서 함수 포인터는 특정 함수를 가리키는 포인터입니다. 함수 포인터의 배열을 사용하면 여러 함수를 하나의 배열로 관리할 수 있습니다.
함수 포인터의 정의
함수 포인터를 정의하는 방법은 다음과 같습니다.
int (*funcPtr)(int, int); // int 타입의 매개변수를 가지고 int를 반환하는 함수를 가리키는 포인터
위의 예시에서 funcPtr
은 int 타입의 매개변수를 가지고 int를 반환하는 함수를 가리키는 포인터입니다.
함수 포인터의 배열
함수 포인터의 배열을 정의하는 방법은 다음과 같습니다.
int (*funcArr[5])(int, int); // int 타입의 매개변수를 가지고 int를 반환하는 함수를 가리키는 포인터의 배열
위의 예시에서 funcArr
은 int 타입의 매개변수를 가지고 int를 반환하는 함수를 가리키는 포인터의 배열입니다. 이 배열은 5개의 함수 포인터를 저장할 수 있습니다.
함수 포인터의 활용
함수 포인터의 배열을 사용하면 다음과 같이 여러 함수를 동적으로 호출할 수 있습니다.
int add(int a, int b) {
return a + b;
}
int subtract(int a, int b) {
return a - b;
}
int multiply(int a, int b) {
return a * b;
}
int divide(int a, int b) {
if (b != 0) {
return a / b;
}
return 0;
}
int main() {
int (*funcArr[4])(int, int) = { add, subtract, multiply, divide };
int result1 = funcArr[0](10, 5); // add 함수 호출
int result2 = funcArr[1](10, 5); // subtract 함수 호출
int result3 = funcArr[2](10, 5); // multiply 함수 호출
int result4 = funcArr[3](10, 5); // divide 함수 호출
}
위의 예시에서 funcArr
배열을 사용하여 add
, subtract
, multiply
, divide
함수를 호출할 수 있습니다.
함수 포인터와 함수 포인터의 배열은 C언어에서 다양한 상황에서 유용하게 활용될 수 있는 중요한 개념입니다.
참고 자료: GeeksforGeeks - Function Pointer in C
Markdown으로 작성된 내용을 읽어주셔서 감사합니다! ¿도움이 되었길 바랍니다.