Alles, was Sie über Funktionen in C wissen müssen?



Dieser Artikel stellt Ihnen ein einfaches, aber sehr grundlegendes und wichtiges Konzept vor, das Funktionen in C ist, und führt anschließend eine Demonstration durch.

Dieser Artikel wird Ihnen eine einfache, aber sehr grundlegende und wichtige vorstellen Konzept, das Funktionen in C ist, und führen Sie anschließend eine Demonstration durch. Die folgenden Hinweise werden in diesem Artikel behandelt:

Funktionen sind Bausteine ​​jeder Programmiersprache. Mit einfachen Worten: Funktionieren Sie in einer Reihe von Anweisungen, die Eingaben entgegennehmen, eine bestimmte Aufgabe ausführen und dann die Ausgabe zurückgeben.
Die Ideologie hinter dem Erstellen von Funktionen besteht darin, eine Reihe verwandter Anweisungen zusammenzubinden, die eine bestimmte Aufgabe ausführen. Damit Sie nicht mehrmals denselben Code für verschiedene Eingaben schreiben müssen. Sie müssen nur die Funktion für verschiedene Eingaben aufrufen, sie führt die angegebene Aufgabe für die angegebene Eingabe aus und gibt die Ausgabe zurück. Sie können die Funktion so oft aufrufen, wie Sie möchten. In diesem Blog lernen wir jede Nuance über Funktionen in der Programmiersprache C kennen.





Beginnen wir mit der grundlegendsten Frage.

Was sind Funktionen in C?

Die Funktionen in C sind mit denen jeder anderen Programmiersprache identisch. Es handelt sich um eine Reihe von Codes, die zusammengefügt werden, um eine bestimmte Aufgabe auszuführen. Der auszuführende Codesatz wird in geschweiften Klammern angegeben, d. H. '{}'.



Bevor Sie lernen, wie man eine Funktion in C schreibt, sollten Sie zunächst die Vorteile verstehen.

Vorteile von Funktionen in C.

Die Vorteile von Funktionen sind allen Programmiersprachen gemeinsam.
Die Hauptidee hinter der Funktion besteht darin, die Redundanz im Code zu reduzieren. Angenommen, Sie verfügen über eine Funktionalität, die in einem Programm mehrmals ausgeführt werden muss. Anstatt sie mehrmals zu schreiben, können Sie eine Funktion für diese Aufgabe erstellen und sie so oft aufrufen, wie Sie möchten. Ein weiterer versteckter Vorteil ist, dass Sie die Logik Ihrer Funktionalität nicht ändern müssen, wenn sie sich später ändert. Sie müssen den Code nur an einer Stelle ändern (d. H. In der Funktion) und er würde sich im gesamten Programm widerspiegeln.

Modularität ist wieder ein zusätzlicher Vorteil. Das Schreiben eines großen Codeteils mit allem und allem verringert die Lesbarkeit des Codes und erschwert die Verwaltung. Sie können den Code mithilfe von Funktionen in Abschnitte für einzelne Funktionen unterteilen, die einfacher zu verstehen und einfacher zu verwalten sind.



Die Funktion bietet auch eine Abstraktion, bei der wir eine Funktion aufrufen und die Ausgabe erhalten können, ohne die interne Implementierung zu kennen.

Weiter mit den Funktionsarten C.

Funktionsarten in C.

Es gibt zwei Arten von Funktionen:
Bibliotheksfunktionen
Benutzerdefinierte Funktionen

Bibliotheksfunktionen sind Funktionen, die bereits in der C-Bibliothek definiert sind, z. B. strcat (), printf (), scanf () usw. Sie müssen lediglich die entsprechenden Header-Dateien einschließen, um diese Funktionen verwenden zu können.
Benutzerdefinierte Funktionen sind Funktionen, die vom Benutzer definiert werden. Diese Funktionen dienen der Wiederverwendbarkeit von Code sowie der Zeit- und Platzersparnis.

Nachdem wir nun die Vorteile des Erstellens einer Funktion kennen, wollen wir verstehen, wie eine Funktion in C deklariert wird.

Funktionserklärung & Definition

Funktionserklärung:

Syntax der Funktionsdeklaration:

return_type Funktionsname (Datentyp arg1, Datentyp arg2) int add (int x, int y) // Funktionsdeklaration

In der Funktionsdeklaration geben wir den Namen der Funktion, die Anzahl der Eingabeparameter, ihre Datentypen und den Rückgabetyp der Funktion an. Die Funktionsdeklaration informiert den Compiler über die Liste der Argumente, die die Funktion erwartet, mit ihren Datentypen und dem Rückgabetyp der Funktion.

In der Funktionsdeklaration ist die Angabe der Namen des Parameters optional, die Angabe der Datentypen ist jedoch obligatorisch.

int add (int, int) // Funktionsdeklaration

Die oben angegebene Funktion akzeptiert zwei ganzzahlige Parameter.

Wie erstelle ich ein Array von Objekten in Java?

Funktionsdefinition

 Bildfunktionen in C-Edureka
int add (int, int) // Funktionsdeklaration return_type Funktionsname (Parameter) {Funktionskörper}

Wie im obigen Bild gezeigt, besteht eine Funktionsdefinition aus zwei Teilen, d. H. Funktionsheader und Funktionskörper

Funktionsheader: Der Funktionsheader entspricht der Funktionsdeklaration ohne das Semikolon. Der Funktionsheader enthält den Funktionsnamen, den Parameter und den Rückgabetyp.

  • Rückgabetyp: Der Rückgabetyp ist der Datentyp des Werts, der von der Funktion zurückgegeben wird. Die Funktion kann einen Wert zurückgeben oder nicht. Wenn dies der Fall ist, sollte der Datentyp des Neuabstimmungswerts angegeben werden, andernfalls muss der Rückgabetyp ungültig sein.

  • Funktionsname: Dies ist der Name der Funktion, mit der wir die Funktion bei Bedarf aufrufen können.

  • Parameter: Die Parameter sind die Eingabewerte, die an die Funktion übergeben werden. Es gibt Auskunft über die Datentypen der Argumente, ihre Reihenfolge und die Anzahl der Argumente, die an die Funktion übergeben werden. Die Parameter sind optional. Sie können auch Funktionen ohne Parameter haben.

Funktionskörper: Der Funktionskörper ist die Anweisungsmenge, die eine bestimmte Aufgabe ausführt. Es definiert, was die Funktion tut.

Beispiel:

int add (int x, int y) {int sum = x + y return (sum)}

Es wird empfohlen, eine Funktion zu deklarieren, bevor wir sie definieren und verwenden. In C können wir die Funktion an derselben Stelle deklarieren und definieren.

Beispiel:

#include int add (int, int) // Funktionsdeklaration // Funktionsdefinition int add (int x, int y) // Funktionsheader {// Funktionskörper int sum = x + y return (sum)} // Hauptfunktion int main () {int sum = add (23, 31) printf ('% d', sum) return 0}

Wie wir im obigen Beispiel sehen können, rufen wir die Funktion mit der Anweisung int sum = add (23, 31) auf. Der von der Funktion zurückgegebene Wert wird in der Summenvariablen gespeichert.

Bevor wir weitermachen, müssen wir noch ein weiteres wichtiges Konzept über das Parament verstehen. Es gibt zwei Arten von Parametern:

Aktueller Parameter : Die Parameter, die beim Aufrufen an Funktionen übergeben werden, werden als Aktualparameter bezeichnet. Zum Beispiel sind 23 und 31 im obigen Beispiel die tatsächlichen Parameter.

Formaler Parameter : Die Parameter, die von den Funktionen empfangen werden, werden als formale Parameter bezeichnet. Zum Beispiel sind x & y im obigen Beispiel die formalen Parameter.

Lassen Sie uns schnell fortfahren und die verschiedenen Möglichkeiten zum Aufrufen einer Funktion in C verstehen.

Eine Funktion aufrufen

Es gibt zwei Möglichkeiten, wie wir eine Funktion aufrufen können:

  • Call by value
  • Rufen Sie als Referenz an

Call by value

Bei der Methode call by value wird der Wert des Aktualparameters als Argument an die Funktion übergeben. Der Wert des Aktualparameters kann durch die Formalparameter nicht geändert werden.

Bei der Call-Be-Value-Methode wird formalen und tatsächlichen Parametern eine andere Speicheradresse zugewiesen. Nur der Wert des Aktualparameters wird in den Formalparameter kopiert.

Beispiel:

Was ist die Verwendung der Socket-Programmierung
#include void Call_By_Value (int num1) {num1 = 42 printf ('nInside-Funktion, Nummer ist% d', num1)} int main () {int num num = 24 printf ('nVor Funktion, Nummer ist% d', num ) Call_By_Value (num) printf ('nNach Funktion, Nummer ist% dn', num) return 0}

Ausgabe

Im obigen Beispiel ist der Wert von num vor dem Aufruf der Wertfunktion 24. Sobald wir die Funktion aufrufen und den Wert übergeben und innerhalb der Funktion ändern, wird er zu 42. Wenn wir zurückkommen und den Wert erneut drucken von num in der Hauptfunktion wird es 24.

Rufen Sie als Referenz an

Beim Aufruf per Referenz wird die Speicheradresse des Aktualparameters als Argument an die Funktion übergeben. Hier kann der Wert des Aktualparameters durch den Formalparameter geändert werden.

Die gleiche Speicheradresse wird sowohl für den tatsächlichen als auch für den formalen Parameter verwendet. Wenn also der Wert des formalen Parameters geändert wird, wird er auch vom tatsächlichen Parameter wiedergegeben.

In C verwenden wir Zeiger, um einen Aufruf als Referenz zu implementieren. Wie Sie im folgenden Beispiel sehen können, erwartet die Funktion Call_By_Reference einen Zeiger auf eine Ganzzahl.

Diese Variable num1 speichert nun die Speicheradresse des Aktualparameters. Um den Wert zu drucken, der in der Speicheradresse gespeichert ist, auf die num1 zeigt, müssen wir den Dereferenzierungsoperator verwenden, d. H. *. Der Wert von * num1 ist also 42.

Der Adressoperator & wird verwendet, um die Adresse einer Variablen eines beliebigen Datentyps abzurufen. In der Funktionsaufrufanweisung 'Call_By_Reference (& num)' wird die Adresse von num übergeben, sodass num anhand seiner Adresse geändert werden kann.

Beispiel

#include // Funktionsdefinition void Call_By_Reference (int * num1) {* num1 = 42 printf ('nInside-Funktion, Nummer ist% d', * num1)} // Hauptfunktion int main () {int num num = 24 printf ( 'nVor der Funktion ist die Nummer% d', num) Call_By_Reference (& num) printf ('nNach der Funktion ist die Nummer% dn', num) return 0}

Ausgabe

In diesem Beispiel beträgt der Wert von num innerhalb der Hauptfunktion zunächst 24. Sobald es an die Call_By_Reference-Funktion übergeben wurde und der Wert durch den formalen Parameter geändert wurde, wurde er auch für den tatsächlichen Parameter geändert. Dies ist der Grund, warum beim Drucken des Werts num nach der Funktion 42 gedruckt wird.

Weiter mit benutzerdefinierten Funktionstypen in C.

Arten von benutzerdefinierten Funktion in C.

Es gibt verschiedene Arten von benutzerdefinierten Funktionen, die auf dem zurückgegebenen Rückgabetyp und den übergebenen Argumenten basieren.

Weiter ohne Argumente und ohne Rückgabewert

1. Keine Argumente übergeben und kein Rückgabewert

Syntax:

Funktionsdeklaration:

void function () Funktionsaufruf: function () Funktionsdefinition: void function () {Anweisungen}

Beispiel

c ++ Was ist ein Namespace?
#include void add () void add () {int x = 20 int y = 30 int sum = x + y printf ('Summe% d', Summe)} int main () {add () return 0}

Weiter ohne Argumente, aber mit einem Rückgabewert

2 Es wurden keine Argumente übergeben, sondern ein Rückgabewert

Syntax:

Funktionsdeklaration:

Funktionsaufruf int function (): Funktionsdefinition function (): int function () {Anweisungen geben a zurück}

Beispiel:

#include int add () int add () {int x = 20 int y = 30 int sum = x + y return (sum)} int main () {int sum sum = add () printf ('sum% d', sum) return 0}

Weiter mit übergebenen Argumenten, aber ohne Rückgabewert

3 Argument übergeben, aber kein Rückgabewert

Syntax:

Funktionsdeklaration:

Funktionsaufruf der Funktion void (int): Funktionsdefinition der Funktion (a): Funktion void (int a) {Anweisungen}

Beispiel:

#include void add (int, int) void add (int x, int y) {int sum = x + y return (sum)} int main () {add (23, 31) return 0}

Fahren Sie mit übergebenem Argument und einem Rückgabewert fort

4 Argument übergeben und ein Rückgabewert

Syntax:

Funktionsdeklaration:

Funktionsaufruf int function (int): Funktionsdefinition von function (a): int function (int a) {Anweisungen geben a zurück}

Beispiel

#include int add (int, int) int add (int x, int y) {int sum = x + y return (sum)} int main () {int sum = add (23, 31) printf ('% d' , sum) return 0}

Lassen Sie uns nun kurz die Funktionen der C-Bibliothek betrachten, die für das Schreiben eines Programms wichtig sind.

C Bibliotheksfunktionen

Bibliotheksfunktionen sind Funktionen in C, die vordefiniert sind und standardmäßig vorhanden sind. Sie müssen nur die spezifische Header-Datei in das Programm aufnehmen und können die in dieser Header-Datei definierten Funktionen verwenden. Jede Header-Datei bietet bestimmte Funktionen. Die Erweiterung der Header-Datei lautet .h.

Um beispielsweise die Funktionen printf / scanf verwenden zu können, müssen wir stdio.h in unser Programm aufnehmen, das Funktionen für die Standardeingabe / -ausgabe bietet.

Es folgt die Liste der Header-Dateien.

einstdio.hStandard-Eingabe- / Ausgabe-Header-Datei
2prägen.hKonsolen-Eingabe- / Ausgabe-Header-Datei
3string.hString-bezogene Bibliotheksfunktionen wie get (), put () usw.
4stdlib.hAllgemeine Bibliotheksfunktionen wie malloc (), calloc (), exit () usw.
5math.hFunktionen für mathematische Operationen wie sqrt (), pow () usw.
6time.hZeitbezogene Funktionen
7ctype.hZeichenbehandlungsfunktionen
8stdarg.hFunktionen für variable Argumente
9signal.hSignalhandhabungsfunktionen
10setjmp.hSprungfunktionen
elflocale.hGebietsschema-Funktionen
12errno.hFehlerbehandlungsfunktionen
13assert.hDiagnosefunktionen

Nachdem Sie die obigen C-Funktionen durchlaufen haben, haben Sie jede Nuance der Funktion verstanden und erfahren, wie Sie sie in der C-Sprache implementieren können. Ich hoffe, dieser Blog ist informativ und bietet Ihnen einen Mehrwert.

Damit sind wir am Ende dieses Artikels über „Funktionen in C“ angelangt. Wenn Sie mehr erfahren möchten, lesen Sie die , ein vertrauenswürdiges Online-Lernunternehmen. Der Java J2EE- und SOA-Schulungs- und Zertifizierungskurs von Edureka wurde entwickelt, um Sie sowohl für Kern- als auch für fortgeschrittene Java-Konzepte sowie für verschiedene Java-Frameworks wie Hibernate & Spring zu schulen.

Hast du eine Frage an uns? Bitte erwähne es im Kommentarbereich dieses Blogs und wir werden uns so schnell wie möglich bei dir melden.