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.
SN | C-Funktionsaspekte | Syntax |
---|---|---|
1 | Funktionsdeklaration | return_type Funktionsname (Argumentliste); |
2 | Funktionsaufruf | Funktionsname (Argumentliste) |
3 | Funktionsdefinition | return_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:
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.
SN | Header-Datei | Beschreibung |
---|---|---|
1 | stdio.h | Dies ist eine Standard-Eingabe-/Ausgabe-Headerdatei. Es enthält alle Bibliotheksfunktionen bezüglich Standard-Ein-/Ausgabe. |
2 | conium.h | Dies ist eine Konsolen-Eingabe-/Ausgabe-Headerdatei. |
3 | string.h | Es enthält alle stringbezogenen Bibliotheksfunktionen wie gets(), puts() usw. |
4 | stdlib.h | Diese Header-Datei enthält alle allgemeinen Bibliotheksfunktionen wie malloc(), calloc(), exit() usw. |
5 | Mathe.h | Diese Header-Datei enthält alle mit mathematischen Operationen verbundenen Funktionen wie sqrt(), pow() usw. |
6 | Zeit.h | Diese Header-Datei enthält alle zeitbezogenen Funktionen. |
7 | ctype.h | Diese Header-Datei enthält alle Funktionen zur Zeichenverarbeitung. |
8 | stdarg.h | In dieser Header-Datei werden variable Argumentfunktionen definiert. |
9 | signal.h | Alle Signalverarbeitungsfunktionen sind in dieser Header-Datei definiert. |
10 | setjmp.h | Diese Datei enthält alle Sprungfunktionen. |
elf | locale.h | Diese Datei enthält Gebietsschemafunktionen. |
12 | Fehlernr.h | Diese Datei enthält Fehlerbehandlungsfunktionen. |
13 | behaupten.h | Diese 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.