logo

C funktioner

I c kan vi opdele et stort program i de grundlæggende byggeklodser kendt som funktion. Funktionen indeholder sættet af programmeringsudsagn omgivet af {}. En funktion kan kaldes flere gange for at give C-programmet genbrugbarhed og modularitet. Med andre ord kan vi sige, at samlingen af ​​funktioner skaber et program. Funktionen er også kendt som procedure eller subrutine på andre programmeringssprog.

Fordel ved funktioner i C

Der er følgende fordele ved C-funktioner.

  • Ved at bruge funktioner kan vi undgå at omskrive samme logik/kode igen og igen i et program.
  • Vi kan kalde C-funktioner et vilkårligt antal gange i et program og fra et hvilket som helst sted i et program.
  • Vi kan nemt spore et stort C-program, når det er opdelt i flere funktioner.
  • Genanvendelighed er den vigtigste opnåelse af C-funktioner.
  • Funktionsopkald er dog altid en overhead i et C-program.

Funktionsaspekter

Der er tre aspekter af en C-funktion.

    FunktionserklæringEn funktion skal erklæres globalt i et c-program for at fortælle compileren om funktionsnavnet, funktionsparametrene og returtypen.
    FunktionsopkaldFunktionen kan kaldes fra hvor som helst i programmet. Parameterlisten må ikke afvige i funktionskald og funktionsdeklaration. Vi skal bestå det samme antal funktioner, som det er deklareret i funktionserklæringen.FunktionsdefinitionDen indeholder de faktiske udsagn, som skal udføres. Det er det vigtigste aspekt, som kontrollen kommer til, når funktionen kaldes. Her skal vi bemærke, at der kun kan returneres én værdi fra funktionen.
SNC funktionsaspekterSyntaks
1Funktionserklæringreturn_type funktionsnavn (argumentliste);
2Funktionsopkaldfunktionsnavn (argumentliste)
3Funktionsdefinitionreturn_type funktionsnavn (argumentliste) {function body;}

Syntaksen for at skabe funktion i c-sprog er angivet nedenfor:

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

Typer af funktioner

Der er to typer funktioner i C-programmering:

    Bibliotekets funktioner:er de funktioner, der er erklæret i C-header-filerne, såsom scanf(), printf(), gets(), puts(), ceil(), floor() osv.Brugerdefinerede funktioner:er de funktioner, som er skabt af C-programmøren, så han/hun kan bruge det mange gange. Det reducerer kompleksiteten af ​​et stort program og optimerer koden.
C funktion

Returværdi

En C-funktion returnerer muligvis ikke en værdi fra funktionen. Hvis du ikke skal returnere nogen værdi fra funktionen, skal du bruge void for returtypen.

Lad os se et simpelt eksempel på C-funktion, der ikke returnerer nogen værdi fra funktionen.

Eksempel uden returværdi:

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

Hvis du vil returnere en hvilken som helst værdi fra funktionen, skal du bruge en hvilken som helst datatype såsom int, long, char osv. Returtypen afhænger af den værdi, der skal returneres fra funktionen.

java klasse diagram

Lad os se et simpelt eksempel på C-funktion, der returnerer int-værdi fra funktionen.

Eksempel med returværdi:

 int get(){ return 10; } 

I ovenstående eksempel skal vi returnere 10 som en værdi, så returtypen er int. Hvis du ønsker at returnere flydende kommaværdi (f.eks. 10,2, 3,1, 54,5 osv.), skal du bruge float som metodens returtype.

 float get(){ return 10.2; } 

Nu skal du kalde funktionen for at få værdien af ​​funktionen.

Forskellige aspekter af funktionskald

En funktion accepterer muligvis ikke ethvert argument. Det kan eller kan ikke returnere nogen værdi. Baseret på disse fakta er der fire forskellige aspekter af funktionskald.

  • funktion uden argumenter og uden returværdi
  • funktion uden argumenter og med returværdi
  • funktion med argumenter og uden returværdi
  • funktion med argumenter og med returværdi

Eksempel på Funktion uden argument og returværdi

Eksempel 1

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

Produktion

forskel på tiger og løve
 Hello Javatpoint 

Eksempel 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

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

Eksempel på Funktion uden argument og med returværdi

Eksempel 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 

Eksempel 2: program til at beregne arealet af kvadratet

streng af længde
 #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 

Eksempel på Funktion med argument og uden returværdi

Eksempel 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 

Eksempel 2: program til at beregne gennemsnittet af 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 

Eksempel på Funktion med argument og med returværdi

Eksempel 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 

Eksempel 2: Program til at kontrollere, om et tal er lige eller ulige

 #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 Biblioteksfunktioner

Biblioteksfunktioner er den indbyggede funktion i C, der er grupperet og placeret på et fælles sted kaldet biblioteket. Sådanne funktioner bruges til at udføre nogle specifikke operationer. For eksempel er printf en biblioteksfunktion, der bruges til at udskrive på konsollen. Bibliotekets funktioner er skabt af designere af compilere. Alle C standard biblioteksfunktioner er defineret inde i de forskellige header-filer, der er gemt med udvidelsen .h . Vi er nødt til at inkludere disse header-filer i vores program for at gøre brug af de biblioteksfunktioner, der er defineret i sådanne header-filer. For eksempel, For at bruge biblioteksfunktionerne såsom printf/scanf, skal vi inkludere stdio.h i vores program, som er en header-fil, der indeholder alle bibliotekets funktioner vedrørende standard input/output.

Listen over mest brugte header-filer er angivet i følgende tabel.

SNHeader-filBeskrivelse
1stdio.hDette er en standard input/output header-fil. Den indeholder alle bibliotekets funktioner vedrørende standard input/output.
2konium.hDette er en konsol input/output header fil.
3streng.hDen indeholder alle strengrelaterede biblioteksfunktioner som gets(), puts(), osv.
4stdlib.hDenne header-fil indeholder alle de generelle biblioteksfunktioner som malloc(), calloc(), exit() osv.
5matematik.hDenne overskriftsfil indeholder alle de matematiske operationsrelaterede funktioner som sqrt(), pow() osv.
6tid.hDenne header-fil indeholder alle de tidsrelaterede funktioner.
7ctype.hDenne overskriftsfil indeholder alle tegnhåndteringsfunktioner.
8stdarg.hVariable argumentfunktioner er defineret i denne header-fil.
9signal.hAlle signalhåndteringsfunktioner er defineret i denne header-fil.
10setjmp.hDenne fil indeholder alle jump-funktionerne.
ellevelokalitet.hDenne fil indeholder lokalitetsfunktioner.
12errno.hDenne fil indeholder fejlhåndteringsfunktioner.
13hævde.hDenne fil indeholder diagnostiske funktioner.

Yderligere detaljer vedrørende C-funktioner er angivet nedenfor:

Der er flere yderligere oplysninger relateret til C-funktioner. Nogle af dem er som følger:

Modulær programmering: Evnen til dele -en kæmpe program ind i mindre, mere overskuelige moduler er en af ​​de vigtigste fordele ved at bruge funktioner i C. Hver funktion kan indeholde et bestemt job eller funktionskomponent, som strømliner og tydeliggør den overordnede programstruktur. Denne modulære strategi forbedrer genbrug af kode og gør vedligeholdelse og fejlretning lettere.

linkedlist i java

Genbrug af kode: Ved at bruge funktioner kan du kun oprette en bestemt algoritme eller logik én gang og bruge den gentagne gange i hele dit program. Du kan bare kalde funktionen når som helst, du har brug for at køre koden, så du slipper for at skulle duplikere den andre steder. Det ikke kun fremskynder udviklingen men sikrer også sammenhæng og mindsker muligheden for at begå fejl.

Indkapsling og abstraktion: Ved at sløre detaljerne i funktionalitetens implementering tilbyder funktioner et abstraktionsniveau. En funktionsprototypes grænseflade kan defineres i en header-fil , mens den faktiske implementering kan leveres i en anden kildefil. Andre dele af programmet kan bruge funktionen uden at skulle forstå, hvordan den implementeres internt på grund af adskillelsen af ​​grænseflade og implementering.

Nem programvedligeholdelse: Et program kan lettere forstås og vedligeholdes, hvis det er opdelt i mindre funktioner. Muligheden for at tildele et specifikt ansvar til hver funktion gør koden mere læsbar og gør fejlfinding og fejlfinding lettere. Du kan koncentrere dig om den nødvendige funktion uden at påvirke andre dele af programmet, hvis der findes en fejl eller en ændring er nødvendig.

Forbedret samarbejde: Funktioner giver udviklere, der arbejder på det samme projekt, mulighed for at samarbejde. Programmet kan være opdelt i funktioner, så flere teammedlemmer kan arbejde videre forskellige funktioner på en gang. Udviklere kan nemt integrere deres arbejde i funktionerne, hvis grænsefladerne er velspecificerede, hvilket forbedrer produktiviteten og fremmer effektiv udvikling.

Overførsel af parameteren: Du kan sende argumenter eller data til en funktion i C, så den kan behandle dem. Funktionen kan udføre handlinger og generere resultater ved hjælp af disse input. Du kan øge funktionernes fleksibilitet og tilpasningsevne ved at overføre parametre, hvilket vil øge dit programs generelle alsidighed.

Returværdier: Funktioner kan sende værdier tilbage til den kode, der kaldte dem, hvilket giver mulighed for kommunikation af funktionens udførelsesresultater. Du kan bruge den returnerede værdi i andre områder af programmet efter at have foretaget beregninger eller datamanipulation i funktionen. Returværdier er især nyttige, når du skal beregne et resultat eller etablere en betingelse afhængigt af funktionens output.

Konklusion:

Afslutningsvis er funktioner afgørende for C-programmering, fordi de giver program organisation, genanvendelighed og modularitet . Udviklere kan undgå gentagne gange at oprette den samme kode ved at dele store programmer op i mindre funktioner, hvilket gør koden mere effektiv og enklere at vedligeholde. Hvor som helst i programmet kan kalde en funktion, hvilket giver fleksibilitet og forbedrer kontrolflowet.

Det erklæring, ring , og definition funktioner er kun nogle få af deres mange karakteristika. Compileren informeres af funktionserklæringen fra navn, argumenter , og returtype . Det er muligt at kalde en funktion med eller uden parametre og med eller uden a returværdi . Programmører konstruerer brugerdefinerede funktioner for at forbedre læsbarheden og optimeringen af ​​deres kode, hvorimod C-biblioteksfunktioner som f.eks. printf() og scanf() give forudindstillede muligheder.

Samlet set er funktioner afgørende byggesten i C-programmering, hvilket giver fordele, herunder øget organisering, genbrug af kode og simpel sporing af enorme programmer. Funktionsopkald kan tilføje nogle overhead, men deres fordele opvejer det minimale præstationshit. Programmører kan skrive effektive og modulære C-programmer ved at forstå og bruge funktioner.