Einführung
Ein Zeiger auf eine Funktion ist eine Möglichkeit, die Speicheradresse einer Funktion zu speichern, genauso wie eine Variable die Speicheradresse eines Werts speichert. Wenn eine Funktion über einen Zeiger aufgerufen wird, wird dies als Zeiger auf eine Funktion bezeichnet.
In diesem Lab werden wir ein C-Programm schreiben, um zu demonstrieren, wie ein Zeiger auf eine Funktion verwendet wird.
Deklarieren und definieren der zu zeigenden Funktion
In diesem Schritt werden wir eine Funktion deklarieren und definieren, die zwei ganzzahlige Argumente akzeptiert und nichts zurückgibt.
#include<stdio.h>
void func(int a, int b)
{
printf("\n\n a = %d \n", a);
printf("\n\n b = %d \n", b);
}
Deklarieren eines Zeigers auf eine Funktion
In diesem Schritt werden wir einen Zeiger auf die Funktion deklarieren, die im Schritt 1 erstellt wurde. Die Syntax zum Deklarieren eines Zeigers auf eine Funktion ähnelt derjenigen zum Deklarieren eines Zeigers auf eine Variable, aber sie gibt die Parametertypen und den Rückgabetyp der zu zeigenden Funktion an.
// function pointer
void (*fptr)(int, int);
Speichern der Adresse der Funktion im Zeiger
In diesem Schritt werden wir die Adresse der Funktion, die im Schritt 1 erstellt wurde, im Zeiger speichern, der im Schritt 2 erstellt wurde.
// assign address to function pointer
fptr = func;
Rufen Sie die Funktion über den Zeiger auf
In diesem Schritt werden wir die Funktion, die wir im Schritt 1 erstellt haben, über den Zeiger auf die Funktion aufrufen, der im Schritt 2 erstellt wurde.
// function calling
func(2,3);
fptr(2,3); // calling a function referring to pointer to a function
Schreiben Sie den vollständigen Code
Öffnen Sie die Datei main.c im Verzeichnis ~/project/.
#include<stdio.h>
void func(int a, int b)
{
printf("\n\n a = %d \n", a);
printf("\n\n b = %d \n", b);
}
int main()
{
printf("\n\n\t\tLabEx - Best place to learn\n\n\n");
// function pointer
void (*fptr)(int, int);
// assign address to function pointer
fptr = func;
// function calling
func(2,3);
fptr(2,3); // calling a function referring to pointer to a function
printf("\n\n\t\t\tCoding is Fun!\n\n\n");
return 0;
}
Kompilieren und Ausführen des Codes
Um den Code zu kompilieren, öffnen Sie das Terminal und geben Sie den folgenden Befehl ein:
gcc main.c -o main
Um das Programm auszuführen, geben Sie den folgenden Befehl ein:
./main
Zusammenfassung
In diesem Lab haben wir gelernt, wie man in einem C-Programm einen Zeiger auf eine Funktion verwendet. Wir haben gesehen, wie man die zu zeigende Funktion deklarieren und definieren, wie man einen Zeiger auf eine Funktion deklarieren, wie man die Adresse der Funktion im Zeiger speichern und wie man die Funktion über den Zeiger aufrufen. Das Verwenden von Zeigern auf Funktionen kann es einfacher machen, komplexe Programme zu schreiben und zu verstehen.



