logo

C-Funktionen

In c können wir ein großes Programm in die Grundbausteine ​​unterteilen, die als Funktion bekannt sind. Die Funktion enthält den Satz von Programmieranweisungen, die von {} eingeschlossen sind. Eine Funktion kann mehrmals aufgerufen werden, um dem C-Programm Wiederverwendbarkeit und Modularität zu verleihen. Mit anderen Worten können wir sagen, dass die Sammlung von Funktionen ein Programm erstellt. Die Funktion wird auch als bezeichnet Verfahren oder Subroutine in anderen Programmiersprachen.

Vorteil von Funktionen in C

Es gibt die folgenden Vorteile von C-Funktionen.

  • Durch die Verwendung von Funktionen können wir vermeiden, dass dieselbe Logik/derselbe Code in einem Programm immer wieder neu geschrieben wird.
  • Wir können C-Funktionen beliebig oft in einem Programm und von jeder Stelle im Programm aus aufrufen.
  • Wir können ein großes C-Programm leicht verfolgen, wenn es in mehrere Funktionen unterteilt ist.
  • Die Wiederverwendbarkeit ist die Hauptleistung von C-Funktionen.
  • Allerdings ist der Funktionsaufruf in einem C-Programm immer ein Overhead.

Funktionsaspekte

Es gibt drei Aspekte einer C-Funktion.

    FunktionsdeklarationEine Funktion muss global in einem C-Programm deklariert werden, um dem Compiler den Funktionsnamen, die Funktionsparameter und den Rückgabetyp mitzuteilen.
    FunktionsaufrufDie Funktion kann von überall im Programm aufgerufen werden. Die Parameterliste darf sich in Funktionsaufruf und Funktionsdeklaration nicht unterscheiden. Wir müssen die gleiche Anzahl an Funktionen übergeben, wie in der Funktionsdeklaration deklariert ist.FunktionsdefinitionEs enthält die eigentlichen Anweisungen, die ausgeführt werden sollen. Dies ist der wichtigste Aspekt, der beim Aufruf der Funktion kontrolliert wird. Hierbei müssen wir beachten, dass von der Funktion nur ein Wert zurückgegeben werden kann.
SNC-FunktionsaspekteSyntax
1Funktionsdeklarationreturn_type Funktionsname (Argumentliste);
2FunktionsaufrufFunktionsname (Argumentliste)
3Funktionsdefinitionreturn_type Funktionsname (Argumentliste) {Funktionskörper;}

Die Syntax zum Erstellen einer Funktion in der Sprache C ist unten angegeben:

 return_type function_name(data_type parameter...){ //code to be executed } 

Arten von Funktionen

In der C-Programmierung gibt es zwei Arten von Funktionen:

    Bibliotheksfunktionen:sind die Funktionen, die in den C-Header-Dateien deklariert sind, wie scanf(), printf(), gets(), puts(), ceil(), floor() usw.Benutzerdefinierte Funktionen:sind die Funktionen, die vom C-Programmierer erstellt werden, damit er sie oft verwenden kann. Es reduziert die Komplexität eines großen Programms und optimiert den Code.
C-Funktion

Rückgabewert

Eine C-Funktion kann einen Wert von der Funktion zurückgeben oder auch nicht. Wenn Sie von der Funktion keinen Wert zurückgeben müssen, verwenden Sie void als Rückgabetyp.

Sehen wir uns ein einfaches Beispiel einer C-Funktion an, die keinen Wert von der Funktion zurückgibt.

Beispiel ohne Rückgabewert:

 void hello(){ printf('hello c'); } 

Wenn Sie einen beliebigen Wert von der Funktion zurückgeben möchten, müssen Sie einen beliebigen Datentyp wie int, long, char usw. verwenden. Der Rückgabetyp hängt vom Wert ab, der von der Funktion zurückgegeben werden soll.

Int-zu-String-Konvertierung

Sehen wir uns ein einfaches Beispiel einer C-Funktion an, die einen int-Wert von der Funktion zurückgibt.

Beispiel mit Rückgabewert:

 int get(){ return 10; } 

Im obigen Beispiel müssen wir 10 als Wert zurückgeben, daher ist der Rückgabetyp int. Wenn Sie einen Gleitkommawert zurückgeben möchten (z. B. 10,2, 3,1, 54,5 usw.), müssen Sie float als Rückgabetyp der Methode verwenden.

 float get(){ return 10.2; } 

Jetzt müssen Sie die Funktion aufrufen, um den Wert der Funktion zu erhalten.

Verschiedene Aspekte des Funktionsaufrufs

Eine Funktion kann ein beliebiges Argument akzeptieren oder auch nicht. Es kann einen beliebigen Wert zurückgeben oder auch nicht. Basierend auf diesen Fakten gibt es vier verschiedene Aspekte von Funktionsaufrufen.

  • Funktion ohne Argumente und ohne Rückgabewert
  • Funktion ohne Argumente und mit Rückgabewert
  • Funktion mit Argumenten und ohne Rückgabewert
  • Funktion mit Argumenten und mit Rückgabewert

Beispiel für eine Funktion ohne Argument und Rückgabewert

Beispiel 1

 #include void printName(); void main () { printf('Hello '); printName(); } void printName() { printf('Javatpoint'); } 

Ausgabe

 Hello Javatpoint 

Beispiel 2

Wie alt ist Kylie Jenner?
 #include void sum(); void main() { printf('
Going to calculate the sum of two numbers:'); sum(); } void sum() { int a,b; printf('
Enter two numbers'); scanf('%d %d',&a,&b); printf('The sum is %d',a+b); } 

Ausgabe

 Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34 

Beispiel für eine Funktion ohne Argument und mit Rückgabewert

Beispiel 1

 #include int sum(); void main() { int result; printf('
Going to calculate the sum of two numbers:'); result = sum(); printf('%d',result); } int sum() { int a,b; printf('
Enter two numbers'); scanf('%d %d',&a,&b); return a+b; } 

Ausgabe

 Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34 

Beispiel 2: Programm zur Berechnung der Fläche des Quadrats

android.process.acore stoppt ständig
 #include int sum(); void main() { printf('Going to calculate the area of the square
'); float area = square(); printf('The area of the square: %f
',area); } int square() { float side; printf('Enter the length of the side in meters: '); scanf('%f',&side); return side * side; } 

Ausgabe

 Going to calculate the area of the square Enter the length of the side in meters: 10 The area of the square: 100.000000 

Beispiel für eine Funktion mit Argument und ohne Rückgabewert

Beispiel 1

 #include void sum(int, int); void main() { int a,b,result; printf('
Going to calculate the sum of two numbers:'); printf('
Enter two numbers:'); scanf('%d %d',&a,&b); sum(a,b); } void sum(int a, int b) { printf('
The sum is %d',a+b); } 

Ausgabe

 Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34 

Beispiel 2: Programm zur Berechnung des Durchschnitts von fünf Zahlen.

 #include void average(int, int, int, int, int); void main() { int a,b,c,d,e; printf('
Going to calculate the average of five numbers:'); printf('
Enter five numbers:'); scanf('%d %d %d %d %d',&a,&b,&c,&d,&e); average(a,b,c,d,e); } void average(int a, int b, int c, int d, int e) { float avg; avg = (a+b+c+d+e)/5; printf('The average of given five numbers : %f',avg); } 

Ausgabe

 Going to calculate the average of five numbers: Enter five numbers:10 20 30 40 50 The average of given five numbers : 30.000000 

Beispiel für eine Funktion mit Argument und Rückgabewert

Beispiel 1

 #include int sum(int, int); void main() { int a,b,result; printf('
Going to calculate the sum of two numbers:'); printf('
Enter two numbers:'); scanf('%d %d',&a,&b); result = sum(a,b); printf('
The sum is : %d',result); } int sum(int a, int b) { return a+b; } 

Ausgabe

 Going to calculate the sum of two numbers: Enter two numbers:10 20 The sum is : 30 

Beispiel 2: Programm zur Prüfung, ob eine Zahl gerade oder ungerade ist

 #include int even_odd(int); void main() { int n,flag=0; printf('
Going to check whether a number is even or odd'); printf('
Enter the number: '); scanf('%d',&n); flag = even_odd(n); if(flag == 0) { printf('
The number is odd'); } else { printf('
The number is even'); } } int even_odd(int n) { if(n%2 == 0) { return 1; } else { return 0; } } 

Ausgabe

 Going to check whether a number is even or odd Enter the number: 100 The number is even 

C-Bibliotheksfunktionen

Bibliotheksfunktionen sind in C integrierte Funktionen, die gruppiert und an einem gemeinsamen Ort namens Bibliothek platziert werden. Mit solchen Funktionen werden bestimmte Vorgänge ausgeführt. printf ist beispielsweise eine Bibliotheksfunktion, die zum Drucken auf der Konsole verwendet wird. Die Bibliotheksfunktionen werden von den Designern der Compiler erstellt. Alle C-Standardbibliotheksfunktionen werden in den verschiedenen Header-Dateien definiert, die mit der Erweiterung gespeichert werden .H . Wir müssen diese Header-Dateien in unser Programm einbinden, um die in solchen Header-Dateien definierten Bibliotheksfunktionen nutzen zu können. Um beispielsweise die Bibliotheksfunktionen wie printf/scanf nutzen zu können, müssen wir stdio.h in unser Programm einbinden, eine Header-Datei, die alle Bibliotheksfunktionen für die Standardeingabe/-ausgabe enthält.

Die Liste der am häufigsten verwendeten Header-Dateien ist in der folgenden Tabelle aufgeführt.

SNHeader-DateiBeschreibung
1stdio.hDies ist eine Standard-Eingabe-/Ausgabe-Headerdatei. Es enthält alle Bibliotheksfunktionen bezüglich Standard-Ein-/Ausgabe.
2conium.hDies ist eine Konsolen-Eingabe-/Ausgabe-Headerdatei.
3string.hEs enthält alle stringbezogenen Bibliotheksfunktionen wie gets(), puts() usw.
4stdlib.hDiese Header-Datei enthält alle allgemeinen Bibliotheksfunktionen wie malloc(), calloc(), exit() usw.
5Mathe.hDiese Header-Datei enthält alle mit mathematischen Operationen verbundenen Funktionen wie sqrt(), pow() usw.
6Zeit.hDiese Header-Datei enthält alle zeitbezogenen Funktionen.
7ctype.hDiese Header-Datei enthält alle Funktionen zur Zeichenverarbeitung.
8stdarg.hIn dieser Header-Datei werden variable Argumentfunktionen definiert.
9signal.hAlle Signalverarbeitungsfunktionen sind in dieser Header-Datei definiert.
10setjmp.hDiese Datei enthält alle Sprungfunktionen.
elflocale.hDiese Datei enthält Gebietsschemafunktionen.
12Fehlernr.hDiese Datei enthält Fehlerbehandlungsfunktionen.
13behaupten.hDiese Datei enthält Diagnosefunktionen.

Weitere Details zu C-Funktionen finden Sie unten:

Es gibt mehrere zusätzliche Informationen zu C-Funktionen. Einige davon sind wie folgt:

Modulare Programmierung: Die Fähigkeit zu teilen A riesiges Programm Die Aufteilung in kleinere, besser verwaltbare Module ist einer der Hauptvorteile der Verwendung von Funktionen in C. Jede Funktion kann einen bestimmten Job oder eine bestimmte Funktionskomponente enthalten, wodurch die gesamte Programmstruktur rationalisiert und klarer wird. Diese modulare Strategie verbessert die Wiederverwendung von Code und erleichtert Wartung und Debugging.

Java-String-Index von

Code-Wiederverwendung: Durch die Verwendung von Funktionen können Sie einen bestimmten Algorithmus oder eine bestimmte Logik nur einmal erstellen und ihn im gesamten Programm wiederholt verwenden. Sie können die Funktion einfach jederzeit aufrufen, wenn Sie den Code ausführen müssen, sodass Sie ihn nicht an anderer Stelle duplizieren müssen. Es nicht nur beschleunigt die Entwicklung sondern sorgt auch für Konsistenz und verringert die Möglichkeit von Fehlern.

Kapselung und Abstraktion: Indem sie die Besonderheiten der Funktionsimplementierung verschleiern, bieten Funktionen eine Abstraktionsebene. Die Schnittstelle eines Funktionsprototyps kann in a definiert werden Header-Datei , während die eigentliche Implementierung in einer anderen Quelldatei bereitgestellt werden kann. Aufgrund der Trennung von Schnittstelle und Implementierung können andere Teile des Programms die Funktion nutzen, ohne dass sie verstehen müssen, wie sie intern implementiert wird.

Einfache Programmwartung: Ein Programm kann leichter verstanden und gewartet werden, wenn es in kleinere Funktionen unterteilt wird. Die Möglichkeit, jeder Funktion eine bestimmte Verantwortung zuzuweisen, macht den Code besser lesbar und erleichtert die Fehlerbehebung und das Debuggen. Sie können sich auf die erforderliche Funktion konzentrieren, ohne andere Teile des Programms zu beeinträchtigen, wenn ein Fehler gefunden wird oder eine Änderung erforderlich ist.

Verbesserte Zusammenarbeit: Funktionen ermöglichen Entwicklern, die am selben Projekt arbeiten, zusammenzuarbeiten. Das Programm kann in Funktionen unterteilt werden, sodass mehrere Teammitglieder daran arbeiten können verschiedene Funktionen auf einmal. Entwickler können ihre Arbeit reibungslos in die Funktionen integrieren, wenn die Schnittstellen gut spezifiziert sind, was die Produktivität verbessert und eine effektive Entwicklung fördert.

Übergabe des Parameters: Sie können Argumente oder Daten an eine Funktion in C senden, damit diese diese verarbeiten kann. Mithilfe dieser Eingaben kann die Funktion Aktionen ausführen und Ergebnisse generieren. Sie können die Flexibilität und Anpassungsfähigkeit von Funktionen durch die Übergabe von Parametern erhöhen, was die allgemeine Vielseitigkeit Ihres Programms erhöht.

Rückgabewerte: Funktionen können Werte an den Code zurücksenden, der sie aufgerufen hat, und so die Ausführungsergebnisse der Funktion kommunizieren. Sie können den zurückgegebenen Wert in anderen Bereichen des Programms verwenden, nachdem Sie innerhalb der Funktion Berechnungen oder Datenmanipulationen durchgeführt haben. Rückgabewerte sind besonders hilfreich, wenn Sie abhängig von der Ausgabe der Funktion ein Ergebnis berechnen oder eine Bedingung festlegen müssen.

Abschluss:

Zusammenfassend lässt sich sagen, dass Funktionen für die C-Programmierung von wesentlicher Bedeutung sind, da sie ein Programm liefern Organisation, Wiederverwendbarkeit und Modularität . Entwickler können die wiederholte Erstellung desselben Codes vermeiden, indem sie große Programme in kleinere Funktionen aufteilen, wodurch der Code effektiver und einfacher zu warten ist. An jeder beliebigen Stelle im Programm kann eine Funktion aufgerufen werden, was für Flexibilität sorgt und den Kontrollfluss verbessert.

Der Erklärung, Anruf , Und Definition von Funktionen sind nur einige ihrer vielen Eigenschaften. Der Compiler wird durch die Funktionsdeklaration des informiert Name, Argumente , Und Rückgabetyp . Es ist möglich, eine Funktion mit oder ohne aufzurufen Parameter und mit oder ohne a Rückgabewert . Programmierer konstruieren benutzerdefinierte Funktionen, um die Lesbarkeit und Optimierung ihres Codes zu verbessern, während C-Bibliotheksfunktionen wie z printf() Und scanf() bieten voreingestellte Funktionen.

Insgesamt sind Funktionen entscheidende Bausteine ​​in der C-Programmierung und bieten Vorteile wie eine bessere Organisation, Wiederverwendung von Code und eine einfache Nachverfolgung großer Programme. Funktionsaufrufe könnten zwar zu einem gewissen Mehraufwand führen, ihre Vorteile überwiegen jedoch die minimalen Leistungseinbußen. Programmierer können effektive und modulare C-Programme schreiben, indem sie Funktionen verstehen und verwenden.