logo

C-funktioner

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.

    FunktionsdeklarationEn funktion måste deklareras globalt i ett c-program för att berätta för kompilatorn om funktionsnamn, funktionsparametrar och returtyp.
    FunktionsanropFunktionen kan anropas från var som helst i programmet. Parameterlistan får inte skilja sig åt i funktionsanrop och funktionsdeklaration. Vi måste passera samma antal funktioner som det deklareras i funktionsdeklarationen.FunktionsdefinitionDen innehåller de faktiska uttalanden som ska köras. Det är den viktigaste aspekten som kontrollen kommer till när funktionen anropas. Här måste vi notera att endast ett värde kan returneras från funktionen.
SNC funktionsaspekterSyntax
1Funktionsdeklarationreturtyp funktionsnamn (argumentlista);
2Funktionsanropfunktionsnamn (argumentlista)
3Funktionsdefinitionreturn_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:

    Bibliotekets funktioner:är de funktioner som deklareras i C-huvudfilerna som scanf(), printf(), gets(), puts(), ceil(), floor() etc.Användardefinierade funktioner:är de funktioner som skapas av C-programmeraren, så att han/hon kan använda den många gånger. Det minskar komplexiteten hos ett stort program och optimerar koden.
C Funktion

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.

SNHeader-filBeskrivning
1stdio.hDetta är en standard in-/utgångshuvudfil. Den innehåller alla biblioteksfunktioner angående standard input/output.
2konium.hDetta är en konsolin-/utgångshuvudfil.
3sträng.hDen innehåller alla strängrelaterade biblioteksfunktioner som gets(), puts(), etc.
4stdlib.hDen här rubrikfilen innehåller alla allmänna biblioteksfunktioner som malloc(), calloc(), exit(), etc.
5matte.hDenna rubrikfil innehåller alla matematiska operationsrelaterade funktioner som sqrt(), pow(), etc.
6tid.hDenna rubrikfil innehåller alla tidsrelaterade funktioner.
7ctype.hDenna rubrikfil innehåller alla teckenhanteringsfunktioner.
8stdarg.hVariabla argumentfunktioner definieras i denna rubrikfil.
9signal.hAlla signalhanteringsfunktioner definieras i denna rubrikfil.
10setjmp.hDen här filen innehåller alla hoppfunktioner.
elvalocale.hDen här filen innehåller lokalfunktioner.
12errno.hDen här filen innehåller felhanteringsfunktioner.
13hävda.hDen 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.