[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으로 작성된 내용을 읽어주셔서 감사합니다! ¿도움이 되었길 바랍니다.