I c kan vi dela upp ett stort program i de grundläggande byggstenarna som kallas funktion. Funktionen innehåller uppsättningen programmeringssatser som omges av {}. En funktion kan anropas flera gånger för att ge återanvändbarhet och modularitet till C-programmet. Med andra ord kan vi säga att samlingen av funktioner skapar ett program. Funktionen är också känd som procedur eller subrutin på andra programmeringsspråk.
Fördelen med funktioner i C
Det finns följande fördelar med C-funktioner.
- Genom att använda funktioner kan vi undvika att skriva om samma logik/kod om och om igen i ett program.
- Vi kan anropa C-funktioner hur många gånger som helst i ett program och från vilken plats som helst i ett program.
- Vi kan enkelt spåra ett stort C-program när det är uppdelat i flera funktioner.
- Återanvändbarhet är den viktigaste prestationen av C-funktioner.
- Funktionsanrop är dock alltid en overhead i ett C-program.
Funktionsaspekter
Det finns tre aspekter av en C-funktion.
SN | C funktionsaspekter | Syntax |
---|---|---|
1 | Funktionsdeklaration | returtyp funktionsnamn (argumentlista); |
2 | Funktionsanrop | funktionsnamn (argumentlista) |
3 | Funktionsdefinition | return_type function_name (argumentlista) {function body;} |
Syntaxen för att skapa funktion i c-språk ges nedan:
return_type function_name(data_type parameter...){ //code to be executed }
Typer av funktioner
Det finns två typer av funktioner i C-programmering:
Returvärde
En C-funktion kan eller kanske inte returnerar ett värde från funktionen. Om du inte behöver returnera något värde från funktionen, använd void för returtypen.
Låt oss se ett enkelt exempel på C-funktion som inte returnerar något värde från funktionen.
Exempel utan returvärde:
void hello(){ printf('hello c'); }
Om du vill returnera något värde från funktionen måste du använda vilken datatyp som helst som int, long, char, etc. Returtypen beror på värdet som ska returneras från funktionen.
abs c-kod
Låt oss se ett enkelt exempel på C-funktion som returnerar int-värde från funktionen.
Exempel med returvärde:
int get(){ return 10; }
I exemplet ovan måste vi returnera 10 som ett värde, så returtypen är int. Om du vill returnera flyttalsvärde (t.ex. 10,2, 3,1, 54,5, etc), måste du använda flytande som returtyp för metoden.
float get(){ return 10.2; }
Nu måste du anropa funktionen för att få värdet på funktionen.
Olika aspekter av funktionsanrop
En funktion kan acceptera något argument eller inte. Det kan eller kanske inte returnerar något värde. Baserat på dessa fakta finns det fyra olika aspekter av funktionsanrop.
- funktion utan argument och utan returvärde
- funktion utan argument och med returvärde
- funktion med argument och utan returvärde
- funktion med argument och med returvärde
Exempel på Funktion utan argument och returvärde
Exempel 1
#include void printName(); void main () { printf('Hello '); printName(); } void printName() { printf('Javatpoint'); }
Produktion
Hello Javatpoint
Exempel 2
#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); }
Produktion
imessage-spel för Android
Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34
Exempel på Funktion utan argument och med returvärde
Exempel 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; }
Produktion
Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34
Exempel 2: program för att beräkna arean av kvadraten
java tecken till sträng
#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; }
Produktion
Going to calculate the area of the square Enter the length of the side in meters: 10 The area of the square: 100.000000
Exempel på Funktion med argument och utan returvärde
Exempel 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); }
Produktion
Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34
Exempel 2: program för att beräkna medelvärdet av fem tal.
#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); }
Produktion
Going to calculate the average of five numbers: Enter five numbers:10 20 30 40 50 The average of given five numbers : 30.000000
Exempel på Funktion med argument och med returvärde
Exempel 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; }
Produktion
Going to calculate the sum of two numbers: Enter two numbers:10 20 The sum is : 30
Exempel 2: Program för att kontrollera om ett tal är jämnt eller udda
#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; } }
Produktion
Going to check whether a number is even or odd Enter the number: 100 The number is even
C Bibliotekets funktioner
Biblioteksfunktioner är den inbyggda funktionen i C som grupperas och placeras på en gemensam plats som kallas biblioteket. Sådana funktioner används för att utföra vissa specifika operationer. Till exempel är printf en biblioteksfunktion som används för att skriva ut på konsolen. Bibliotekets funktioner skapas av kompilatorernas designers. Alla C-standardbiblioteksfunktioner är definierade i de olika rubrikfilerna som sparats med tillägget .h . Vi måste inkludera dessa header-filer i vårt program för att kunna använda biblioteksfunktionerna som definieras i sådana header-filer. Till exempel, För att använda biblioteksfunktionerna som printf/scanf måste vi inkludera stdio.h i vårt program som är en header-fil som innehåller alla biblioteksfunktioner gällande standard input/output.
Listan över mest använda header-filer ges i följande tabell.
SN | Header-fil | Beskrivning |
---|---|---|
1 | stdio.h | Detta är en standard in-/utgångshuvudfil. Den innehåller alla biblioteksfunktioner angående standard input/output. |
2 | konium.h | Detta är en konsolin-/utgångshuvudfil. |
3 | sträng.h | Den innehåller alla strängrelaterade biblioteksfunktioner som gets(), puts(), etc. |
4 | stdlib.h | Den här rubrikfilen innehåller alla allmänna biblioteksfunktioner som malloc(), calloc(), exit(), etc. |
5 | matte.h | Denna rubrikfil innehåller alla matematiska operationsrelaterade funktioner som sqrt(), pow(), etc. |
6 | tid.h | Denna rubrikfil innehåller alla tidsrelaterade funktioner. |
7 | ctype.h | Denna rubrikfil innehåller alla teckenhanteringsfunktioner. |
8 | stdarg.h | Variabla argumentfunktioner definieras i denna rubrikfil. |
9 | signal.h | Alla signalhanteringsfunktioner definieras i denna rubrikfil. |
10 | setjmp.h | Den här filen innehåller alla hoppfunktioner. |
elva | locale.h | Den här filen innehåller lokalfunktioner. |
12 | errno.h | Den här filen innehåller felhanteringsfunktioner. |
13 | hävda.h | Den här filen innehåller diagnostikfunktioner. |
Ytterligare information om C-funktioner finns nedan:
Det finns flera ytterligare information relaterad till C-funktioner. Några av dem är följande:
Modulär programmering: Förmågan att dela upp a jättestort program till mindre, mer hanterbara moduler är en av de största fördelarna med att använda funktioner i C. Varje funktion kan innehålla ett visst jobb eller funktionskomponent, vilket effektiviserar och förtydligar den övergripande programstrukturen. Denna modulära strategi förbättrar kodåteranvändning och gör underhåll och felsökning enklare.
10 miljoner
Kodåteranvändning: Genom att använda funktioner kan du skapa en viss algoritm eller logik bara en gång och använda den upprepade gånger genom hela programmet. Du kan bara anropa funktionen när du behöver köra koden, vilket gör att du slipper duplicera den någon annanstans. Det inte bara påskyndar utvecklingen men säkerställer också konsekvens och minskar möjligheten att göra misstag.
Inkapsling och abstraktion: Genom att dölja detaljerna i funktionalitetens implementering erbjuder funktioner en abstraktionsnivå. En funktionsprototyps gränssnitt kan definieras i en header-fil , medan den faktiska implementeringen kan tillhandahållas i en annan källfil. Andra delar av programmet kan använda funktionen utan att behöva förstå hur den implementeras internt på grund av separationen mellan gränssnitt och implementering.
Enkelt programunderhåll: Ett program kan lättare förstås och underhållas om det är uppdelat i mindre funktioner. Möjligheten att tilldela varje funktion ett specifikt ansvar gör koden mer läsbar och gör felsökning och felsökning enklare. Du kan koncentrera dig på den nödvändiga funktionen utan att påverka andra delar av programmet om ett fel hittas eller en modifiering behövs.
Förbättrat samarbete: Funktioner tillåter utvecklare som arbetar med samma projekt att samarbeta. Programmet kan vara uppdelat i funktioner så att flera teammedlemmar kan arbeta vidare olika funktioner genast. Utvecklare kan smidigt integrera sitt arbete i funktionerna om gränssnitten är väl specificerade, vilket förbättrar produktiviteten och främjar effektiv utveckling.
Skickar parametern: Du kan skicka argument eller data till en funktion i C så att den kan bearbeta dem. Funktionen kan utföra åtgärder och generera resultat med hjälp av dessa ingångar. Du kan öka funktionernas flexibilitet och anpassningsförmåga genom att skicka parametrar, vilket kommer att öka ditt programs övergripande mångsidighet.
Returvärden: Funktioner kan skicka värden tillbaka till koden som anropade dem, vilket möjliggör kommunikation av funktionens exekveringsresultat. Du kan använda det returnerade värdet i andra delar av programmet efter att ha gjort beräkningar eller datamanipulation i funktionen. Returvärden är särskilt användbara när du behöver beräkna ett resultat eller upprätta ett villkor beroende på funktionens utdata.
Slutsats:
Sammanfattningsvis är funktioner väsentliga för C-programmering eftersom de ger program organisation, återanvändbarhet och modularitet . Utvecklare kan undvika att upprepade gånger skapa samma kod genom att dela upp stora program i mindre funktioner, vilket gör koden mer effektiv och enklare att underhålla. Var som helst i programmet kan anropa en funktion, vilket ger flexibilitet och förbättrar kontrollflödet.
De deklaration, ring , och definition funktioner är bara några av deras många egenskaper. Kompilatorn informeras av funktionsdeklarationen för namn, argument , och returtyp . Det är möjligt att anropa en funktion med eller utan parametrar och med eller utan a returvärde . Programmerare konstruerar användardefinierade funktioner för att förbättra läsbarheten och optimeringen av sin kod, medan C-biblioteksfunktioner som printf() och scanf() tillhandahålla förinställda funktioner.
Sammantaget är funktioner avgörande byggstenar i C-programmering, vilket ger fördelar inklusive ökad organisation, kodåteranvändning och enkel spårning av enorma program. Funktionsanrop kan lägga till en del overhead, men deras fördelar uppväger den minimala prestandaträffen. Programmerare kan skriva effektiva och modulära C-program genom att förstå och använda funktioner.