C에서는 일반 데이터 포인터 (int *, char *등)와 마찬가지로 함수에 대한 포인터를 가질 수 있습니다. 다음은 함수 포인터를 사용하여 선언 및 함수 호출을 보여 주는 간단한 예제입니다. 여기서 더블은 함수의 반환 유형이며 p2f는 함수 포인터의 이름이며 (이중, char)는이 함수의 인수 목록입니다. 즉, 이 함수의 첫 번째 인수는 이중 형식이고 두 번째 인수는 char 형식입니다. 5) 기능 포인터는 스위치 케이스 대신 사용할 수 있습니다. 예를 들어 아래 프로그램에서는 사용자가 다른 작업을 수행하기 위해 0과 2 중에서 선택하라는 메시지가 표시됩니다. 함수 포인터를 사용하면 C에서 메서드를 에뮬레이트할 수 있습니다. 아니요, adress 연산자는 함수의 adress에 대한 포인터를 이미 “is”하기 때문에 필요하지 않습니다. C의 함수 포인터에 대한 가장 큰 용도 중 하나는 런타임에 선택한 함수를 호출하는 것입니다.
예를 들어 C 런타임 라이브러리에는 정렬중인 두 항목을 비교하기 위해 호출되는 함수에 대한 포인터를 취하는 qsort 및 bsearch라는 두 개의 루틴이 있습니다. 이렇게 하면 사용하려는 기준에 따라 모든 것을 정렬하거나 검색할 수 있습니다. 함수 포인터는 런타임 값을 기반으로 실행할 함수를 선택하는 간단한 방법을 제공하여 코드를 단순화하는 데 사용할 수 있습니다. 우리는 그 매개 변수로 완료되었기 때문에 D2를 ID1로 대체했습니다 (이미 함수에 대한 포인터입니다 – 다른 선언자가 필요하지 않습니다). ID1은 매개 변수의 이름이 됩니다. 이제, 나는 끝에서 위에서 말했듯이 모든 선언자가 수정하는 형식을 추가합니다 – 모든 선언의 맨 왼쪽에 나타나는 형식입니다. 함수의 경우 반환 형식이 됩니다. 포인터의 경우, 가리키는 유형 등 … 형식을 적어 두면 반대 순서로 표시되며, 바로 🙂 어쨌든, 그것을 대체하면 완전한 선언이 생성됩니다. 물론 두 번 모두 int. 다음은 함수 포인터에 대한 몇 가지 흥미로운 사실입니다. 이 함수는 두 개의 정수 인수를 취하고 해당 숫자의 추가를 반환합니다.
반품 타입 이 완성! 이제 D2를 현재 의 D3()인 반환하는 함수 선언자 함수로 대체해 보겠습니다. C 프로그래밍 언어에서는 C의 함수 포인터로 알려진 함수에 대한 포인터 개념을 가질 수 있습니다.