C - Funktionen
Eine Funktion ist eine Gruppe von Anweisungen, die zusammen eine Aufgabe ausführen. Jedes C-Programm hat mindestens eine Funktion, die main() ist , und alle trivialsten Programme können zusätzliche Funktionen definieren.
Sie können Ihren Code in separate Funktionen aufteilen. Wie Sie Ihren Code auf verschiedene Funktionen aufteilen, bleibt Ihnen überlassen, aber logischerweise ist die Aufteilung so, dass jede Funktion eine bestimmte Aufgabe erfüllt.
Eine Funktions-Deklaration teilt dem Compiler den Namen, den Rückgabetyp und die Parameter einer Funktion mit. Eine Funktions-Definition stellt den eigentlichen Hauptteil der Funktion bereit.
Die C-Standardbibliothek stellt zahlreiche eingebaute Funktionen bereit, die Ihr Programm aufrufen kann. Beispiel:strcat() um zwei Strings zu verketten, memcpy() einen Speicherplatz auf einen anderen kopieren und viele weitere Funktionen.
Eine Funktion kann auch als Methode oder Subroutine oder Prozedur usw. bezeichnet werden.
Definieren einer Funktion
Die allgemeine Form einer Funktionsdefinition in der Programmiersprache C ist wie folgt −
return_type function_name( parameter list ) { body of the function }
Eine Funktionsdefinition in der C-Programmierung besteht aus einem Funktionskopf und einen Funktionskörper . Hier sind alle Teile einer Funktion −
-
Rückgabetyp − Eine Funktion kann einen Wert zurückgeben. Der return_type ist der Datentyp des Werts, den die Funktion zurückgibt. Einige Funktionen führen die gewünschten Operationen aus, ohne einen Wert zurückzugeben. In diesem Fall ist return_type das Schlüsselwort void .
-
Funktionsname − Dies ist der eigentliche Name der Funktion. Der Funktionsname und die Parameterliste bilden zusammen die Funktionssignatur.
-
Parameter − Ein Parameter ist wie ein Platzhalter. Wenn eine Funktion aufgerufen wird, übergeben Sie einen Wert an den Parameter. Dieser Wert wird als aktueller Parameter oder Argument bezeichnet. Die Parameterliste bezieht sich auf Art, Reihenfolge und Anzahl der Parameter einer Funktion. Parameter sind optional; das heißt, eine Funktion darf keine Parameter enthalten.
-
Funktionskörper − Der Funktionskörper enthält eine Sammlung von Anweisungen, die definieren, was die Funktion tut.
Beispiel
Unten ist der Quellcode für eine Funktion namens max() . Diese Funktion nimmt zwei Parameter num1 und num2 und gibt den maximalen Wert zwischen den beiden zurück −
/* function returning the max between two numbers */ int max(int num1, int num2) { /* local variable declaration */ int result; if (num1 > num2) result = num1; else result = num2; return result; }
Funktionserklärungen
Eine Funktions-Deklaration teilt dem Compiler einen Funktionsnamen mit und wie die Funktion aufgerufen wird. Der eigentliche Funktionskörper kann separat definiert werden.
Eine Funktionsdeklaration hat die folgenden Teile −
return_type function_name( parameter list );
Für die oben definierte Funktion max() lautet die Funktionsdeklaration wie folgt −
int max(int num1, int num2);
Parameternamen sind in der Funktionsdeklaration nicht wichtig, nur ihr Typ ist erforderlich, daher ist das Folgende auch eine gültige Deklaration −
int max(int, int);
Eine Funktionsdeklaration ist erforderlich, wenn Sie eine Funktion in einer Quelldatei definieren und diese Funktion in einer anderen Datei aufrufen. In diesem Fall sollten Sie die Funktion am Anfang der Datei deklarieren, die die Funktion aufruft.
Aufruf einer Funktion
Beim Erstellen einer C-Funktion geben Sie an, was die Funktion tun soll. Um eine Funktion zu verwenden, müssen Sie diese Funktion aufrufen, um die definierte Aufgabe auszuführen.
Wenn ein Programm eine Funktion aufruft, wird die Programmsteuerung an die aufgerufene Funktion übertragen. Eine aufgerufene Funktion führt eine definierte Aufgabe aus und wenn ihre return-Anweisung ausgeführt wird oder wenn ihre funktionsbeendende schließende Klammer erreicht wird, gibt sie die Programmsteuerung zurück an das Hauptprogramm.
Um eine Funktion aufzurufen, müssen Sie einfach die erforderlichen Parameter zusammen mit dem Funktionsnamen übergeben, und wenn die Funktion einen Wert zurückgibt, können Sie den zurückgegebenen Wert speichern. Zum Beispiel −
Live-Demo#include <stdio.h> /* function declaration */ int max(int num1, int num2); int main () { /* local variable definition */ int a = 100; int b = 200; int ret; /* calling a function to get max value */ ret = max(a, b); printf( "Max value is : %d\n", ret ); return 0; } /* function returning the max between two numbers */ int max(int num1, int num2) { /* local variable declaration */ int result; if (num1 > num2) result = num1; else result = num2; return result; }
Wir haben max() zusammen mit main() beibehalten und den Quellcode kompiliert. Während die endgültige ausführbare Datei ausgeführt wird, würde sie das folgende Ergebnis erzeugen −
Max value is : 200
Funktionsargumente
Wenn eine Funktion Argumente verwenden soll, muss sie Variablen deklarieren, die die Werte der Argumente akzeptieren. Diese Variablen werden als formale Parameter bezeichnet der Funktion.
Formale Parameter verhalten sich wie andere lokale Variablen innerhalb der Funktion und werden beim Eintritt in die Funktion erstellt und beim Verlassen zerstört.
Beim Aufruf einer Funktion gibt es zwei Möglichkeiten, Argumente an eine Funktion zu übergeben −
Sr.No. | Anruftyp und -beschreibung |
---|---|
1 | Call-by-Value Diese Methode kopiert den tatsächlichen Wert eines Arguments in den formalen Parameter der Funktion. In diesem Fall wirken sich Änderungen am Parameter innerhalb der Funktion nicht auf das Argument aus. |
2 | Aufruf per Referenz Diese Methode kopiert die Adresse eines Arguments in den Formalparameter. Innerhalb der Funktion wird die Adresse verwendet, um auf das tatsächliche Argument zuzugreifen, das im Aufruf verwendet wird. Das bedeutet, dass sich Änderungen am Parameter auf das Argument auswirken. |
Standardmäßig verwendet C Call by Value Argumente weiterzugeben. Im Allgemeinen bedeutet dies, dass der Code innerhalb einer Funktion die zum Aufrufen der Funktion verwendeten Argumente nicht ändern kann.
C Sprache