Wskaźnik funkcji jest normalną zmienną wskaźnika C, ale to, co wskazuje, jest funkcją. Umożliwia to programy fantazyjne i dynamiczne, które wywołują różne funkcje w różnych okolicznościach dynamicznie w oparciu o to, na które kiedykolwiek funkcjonuje wskaźnik. Programista tworzy logikę, aby zmienić wartość wskaźnika na różne funkcje z różnych powodów, a wskaźnik wskazuje wskaźnik. Pokazajmy to z niektórymi przykładami.
Przegląd techniczny
Omówimy składnię wskaźników funkcji. Damy nam znać, w jaki sposób możemy spowodować, że wskaźnik wskazuje funkcję; Innymi słowy, w jaki sposób możemy przechowywać adres funkcji za pomocą wskaźnika. Dowiemy się również deklaracji i odniesienia wskaźnika funkcji oraz w jaki sposób wskaźniki funkcji można użyć do wykonania funkcji funkcji wskaźnika.
Składnia
Ogólna składnia do deklaracji wskaźnika funkcji jest następująca:
$ Zwracaj typ funkcji (* nazwa wskaźnika) (typ danych AR_1, typ danych Arg_2)Metoda deklaracji wskaźnika funkcji jest tak samo jak zwykła deklaracja funkcji; Jedyną różnicą w wskaźniku funkcji jest to, że deklarujemy nazwę wskaźnika funkcji, używamy symbolu * a zmienna jest zawarta w nawiasie, w przeciwieństwie do normalnej funkcji, w której nazwa jest zadeklarowana bez użycia z nią żadnego symbolu. Zadeksujmy wskaźnik funkcji manekina za pomocą jakiegoś hipotetycznego przykładu; Najpierw zadeklaruj dowolną funkcję zwykłą metodą, e.G., int func (int, int). Po deklaracji funkcji Func, Teraz ogłosimy wskaźnik funkcji jako int (*funcptr) (int, int);. Oto ogólna składnia i przypisanie funkcji do wskaźnika funkcji:
// Deklaracja funkcjiPrzykład nr 01
W tym przykładzie utworzymy funkcję o nazwie kwadrat z 2 parametrami do obliczania LEN i szerokości prostokąta. [len * szerokość = obszar]. Następnie deklarujemy wskaźnik funkcji i przypisujemy adres kwadrat funkcja do wskaźnika funkcji wywoływana sp. Po otrzymaniu dynamicznych wejść użytkownika wywołujemy funkcję za pomocą wskaźnika funkcji, aby wykonać wykonanie wywołania funkcji.
W ciele funkcji po prostu weźmiemy mnożenie obu zmiennych Len I szerokość Aby obliczyć obszar prostokąta i wyjdź z funkcji zwracającej ten obszar. Wdrożenie przykładów pokazano na poniższym fragmencie:
#włączaćPodaliśmy te same dane wejściowe użytkownika zarówno dla zmiennych L, jak „5”, ponieważ oba reprezentują długość i szerokość kwadratu, które są równe wartości. Wyjście zwróciło kwadrat o wartości 5 jako obszar kwadratu.
Przykład nr 02
Za pomocą tego przykładu utworzymy tablicę wskaźników funkcji, w których każdy element tablicy będzie przechowywał funkcję wskaźnika dla różnych funkcji. Na przykład zadeklarujemy dwie normalne funkcje odejmowania i dodawania z liczbą całkowitą typu return z dwoma parametrami funkcji o typu danych liczb całkowitych. Następnie zadeklarujemy tablicę wskaźników funkcji, a następnie zainicjujemy dwa elementy tablicy z naszymi dwiema funkcjami zadeklarowanymi do dodania i odejmowania. Następnie użyjemy tablicy funkcji wskaźnika z indeksem wskaźnika funkcji tablicy, e.G., „ARR [i]”.
Funkcje dodawania i odejmowania będą wykorzystywać wartości odczytu zainicjowanych zmiennych A I B. Następnie wyświetlimy te wyniki, wywołując metodę printf (). Poniższy fragment pokazuje pełny program dla tego przykładu:
#włączaćWniosek
Przewodnik zawiera podstawowy przykład i wyjaśnienie wskaźników funkcji w języku C. Uwaga, aby zmienić składnię podczas zmiany ilości parametrów i typu danych, a także jeśli zmienisz typ zwrotu funkcji, wskaźnik funkcji będzie musiał odpowiednio zmienić.