logo

C funktioner

EN funktion i C er et sæt udsagn, der, når de kaldes, udfører en bestemt opgave. Det er den grundlæggende byggeklods i et C-program, der giver modularitet og kodegenanvendelighed. Programmeringssætningerne for en funktion er indesluttet i { } seler , har visse betydninger og udfører visse operationer. De kaldes også underrutiner eller procedurer på andre sprog.

I denne artikel vil vi lære om funktioner, funktionsdefinition. erklæring, argumenter og parametre, returværdier og mange flere.

Syntaks af funktioner i C

Syntaksen for funktion kan opdeles i 3 aspekter:



    Funktionserklæring Funktionsdefinition Funktionskald

Funktionserklæringer

I en funktionserklæring skal vi angive funktionsnavnet, dens returtype og antallet og typen af ​​dens parametre. En funktionserklæring fortæller compileren, at der er en funktion med det givne navn defineret et andet sted i programmet.

Syntaks

return_type name_of_the_function  ( parameter_1 , parameter_2 );>

Parameternavnet er ikke obligatorisk under deklarering af funktioner. Vi kan også erklære funktionen uden at bruge navnet på datavariablerne.

Eksempel

int sum (int a , int b ); int sum (int , int);>
Funktionserklæring

Funktionserklæring

Bemærk: En funktion i C skal altid erklæres globalt, før den kaldes.

Funktionsdefinition

Funktionsdefinitionen består af faktiske udsagn, som udføres, når funktionen kaldes (dvs. når programstyringen kommer til funktionen).

En C-funktion er generelt defineret og erklæret i et enkelt trin, fordi funktionsdefinitionen altid starter med funktionserklæringen, så vi behøver ikke at erklære den eksplicit. Nedenstående eksempel fungerer som både en funktionsdefinition og en erklæring.

return_type function_name (para1_type  para1_name,  para2_type  para2_name ) { // body of the function }>
Funktionsdefinition i C

Funktionsdefinition i C

Funktionsopkald

Et funktionskald er en sætning, der instruerer compileren til at udføre funktionen. Vi bruger funktionsnavnet og parametrene i funktionskaldet.

I eksemplet nedenfor kaldes den første sumfunktion, og 10,30 overføres til sumfunktionen. Efter funktionskaldet returneres summen af ​​a og b, og styringen returneres også tilbage til programmets hovedfunktion.

Funktionsarbejde i C

Funktionsarbejde i C

Bemærk: Funktionskald er nødvendigt for at bringe programstyringen til funktionsdefinitionen. Hvis det ikke kaldes, vil funktionssætningerne ikke blive udført.

Eksempel på C-funktion

C




// C program to show function> // call and definition> #include> // Function that takes two parameters> // a and b as inputs and returns> // their sum> int> sum(>int> a,>int> b)> {> >return> a + b;> }> // Driver code> int> main()> {> >// Calling sum function and> >// storing its value in add variable> >int> add = sum(10, 30);> > >printf>(>'Sum is: %d'>, add);> >return> 0;> }>

>

java klasse diagram
>

Produktion

Sum is: 40>

Som vi har bemærket, har vi ikke brugt eksplicit funktionserklæring. Vi definerede og kaldte simpelthen funktionen.

Funktion Return Type

Funktionsreturtype fortæller, hvilken type værdi der returneres, efter at alle funktioner er udført. Når vi ikke ønsker at returnere en værdi, kan vi bruge den ugyldige datatype.

Eksempel:

int func(parameter_1,parameter_2);>

Ovenstående funktion vil returnere en heltalsværdi efter at have kørt sætninger inde i funktionen.

Bemærk: Kun én værdi kan returneres fra en C-funktion. For at returnere flere værdier skal vi bruge pointere eller strukturer.

Funktionsargumenter

Funktionsargumenter (også kendt som funktionsparametre) er de data, der sendes til en funktion.

Eksempel:

forskel på tiger og løve
int function_name(int var1, int var2);>

Betingelser for returtyper og argumenter

I programmeringssprog C kan funktioner kaldes enten med eller uden argumenter og kan returnere værdier. De returnerer muligvis ikke værdier til de kaldende funktioner.

  1. Funktion uden argumenter og ingen returværdi
  2. Funktion uden argumenter og med returværdi
  3. Funktion med argument og uden returværdi
  4. Funktion med argumenter og med returværdi

For at vide mere om funktionsargumenter og returværdier henvises til artiklen – Funktionsargumenter og returværdier i C .

Hvordan virker C-funktionen?

Arbejdet med C-funktionen kan opdeles i følgende trin som nævnt nedenfor:

    Erklæring af en funktion: Erklæring af en funktion er et trin, hvor vi erklærer en funktion. Her definerer vi funktionens returtyper og parametre.
  1. Definition af en funktion:
  2. Kaldning af funktionen: Kaldning af funktionen er et trin, hvor vi kalder funktionen ved at videregive argumenterne i funktionen. Udførelse af funktionen: Udførelse af funktionen er et trin, hvor vi kan køre alle udsagn inde i funktionen for at få det endelige resultat. Returnering af en værdi: Returnering af en værdi er det trin, hvor den beregnede værdi efter udførelsen af ​​funktionen returneres. Afslutning af funktionen er det sidste trin, hvor al den allokerede hukommelse til variablerne, funktionerne osv. bliver ødelagt, før den giver fuld kontrol til hovedfunktionen.

Typer af funktioner

Der er to typer funktioner i C:

    Biblioteksfunktioner Brugerdefinerede funktioner
Typer af funktioner

Typer af funktioner i C

1. Biblioteksfunktion

En biblioteksfunktion kaldes også en indbygget funktion . Der findes allerede en kompileringspakke, der indeholder disse funktioner, som hver har en bestemt betydning og er inkluderet i pakken. Indbyggede funktioner har den fordel, at de kan bruges direkte uden at være definerede, hvorimod brugerdefinerede funktioner skal deklareres og defineres, før de bruges.

For eksempel:

pow(), sqrt(), strcmp(), strcpy() etc.>

Fordele ved C-biblioteksfunktioner

  • C Library-funktionerne er nemme at bruge og optimeret til bedre ydeevne.
  • C-biblioteksfunktioner sparer meget tid, dvs. funktionsudviklingstid.
  • C-biblioteksfunktioner er praktiske, da de altid fungerer.

Eksempel:

C




// C program to implement> // the above approach> #include> #include> // Driver code> int> main()> {> >double> Number;> >Number = 49;> >// Computing the square root with> >// the help of predefined C> >// library function> >double> squareRoot =>sqrt>(Number);> > >printf>(>'The Square root of %.2lf = %.2lf'>,> >Number, squareRoot);> >return> 0;> }>

>

>

Produktion

The Square root of 49.00 = 7.00>

2. Brugerdefineret funktion

Funktioner, som programmøren opretter, er kendt som brugerdefinerede funktioner eller skræddersyede funktioner . Brugerdefinerede funktioner kan forbedres og modificeres i henhold til programmørens behov. Når vi skriver en funktion, der er case-specifik og ikke er defineret i nogen header-fil, er vi nødt til at erklære og definere vores egne funktioner i henhold til syntaksen.

Fordele ved brugerdefinerede funktioner

  • Udskiftelige funktioner kan ændres efter behov.
  • Koden for disse funktioner kan genbruges i andre programmer.
  • Disse funktioner er nemme at forstå, fejlfinde og vedligeholde.

Eksempel:

C




// C program to show> // user-defined functions> #include> int> sum(>int> a,>int> b)> {> >return> a + b;> }> // Driver code> int> main()> {> >int> a = 30, b = 40;> > >// function call> >int> res = sum(a, b);> >printf>(>'Sum is: %d'>, res);> >return> 0;> }>

>

>

Produktion

Sum is: 70>

Overførsel af parametre til funktioner

De data, der sendes, når funktionen aktiveres, er kendt som de faktiske parametre. I nedenstående program er 10 og 30 kendt som faktiske parametre. Formelle parametre er variablen og datatypen som nævnt i funktionsdeklarationen. I nedenstående program er a og b kendt som formelle parametre.

Overførsel af parametre til funktioner

Overførsel af parametre til funktioner

Vi kan sende argumenter til C-funktionen på to måder:

  1. Gå forbi Værdi
  2. Gå forbi reference

1. Gå forbi værdi

Parameteroverførsel i denne metode kopierer værdier fra faktiske parametre til formelle funktionsparametre. Som følge heraf afspejler eventuelle ændringer, der er foretaget i funktionerne, ikke den opkaldendes parametre.

Eksempel:

C




// C program to show use> // of call by value> #include> void> swap(>int> var1,>int> var2)> {> >int> temp = var1;> >var1 = var2;> >var2 = temp;> }> // Driver code> int> main()> {> >int> var1 = 3, var2 = 2;> >printf>(>'Before swap Value of var1 and var2 is: %d, %d '>,> >var1, var2);> >swap(var1, var2);> >printf>(>'After swap Value of var1 and var2 is: %d, %d'>,> >var1, var2);> >return> 0;> }>

>

>

streng af længde
Produktion

Before swap Value of var1 and var2 is: 3, 2 After swap Value of var1 and var2 is: 3, 2>

2. Gå forbi reference

Opkalderens faktiske parametre og funktionens faktiske parametre refererer til de samme steder, så eventuelle ændringer, der foretages inde i funktionen, afspejles i opkalderens faktiske parametre.

Eksempel:

C




// C program to show use of> // call by Reference> #include> void> swap(>int> *var1,>int> *var2)> {> >int> temp = *var1;> >*var1 = *var2;> >*var2 = temp;> }> // Driver code> int> main()> {> >int> var1 = 3, var2 = 2;> >printf>(>'Before swap Value of var1 and var2 is: %d, %d '>,> >var1, var2);> >swap(&var1, &var2);> >printf>(>'After swap Value of var1 and var2 is: %d, %d'>,> >var1, var2);> >return> 0;> }>

>

>

Produktion

Before swap Value of var1 and var2 is: 3, 2 After swap Value of var1 and var2 is: 2, 3>

Fordele ved funktioner i C

Funktioner i C er en meget nyttig funktion af C med mange fordele som nævnt nedenfor:

  1. Funktionen kan reducere gentagelsen af ​​de samme udsagn i programmet.
  2. Funktionen gør kode læsbar ved at give modularitet til vores program.
  3. Der er ikke et fast antal opkaldsfunktioner, det kan ringes op så mange gange du vil.
  4. Funktionen reducerer størrelsen af ​​programmet.
  5. Når funktionen er deklareret, kan du bare bruge den uden at tænke på den interne funktion af funktionen.

Ulemper ved funktioner i C

Følgende er de største ulemper ved funktioner i C:

  1. Kan ikke returnere flere værdier.
  2. Hukommelse og tid overhead på grund af stack frame allokering og overførsel af program kontrol.

Konklusion

I denne artikel diskuterede vi følgende punkter om funktionen som nævnt nedenfor:

linkedlist i java
  1. Funktionen er den kodeblok, der kan genbruges så mange gange, vi vil inde i et program.
  2. For at bruge en funktion skal vi kalde en funktion.
  3. Funktionserklæring inkluderer funktionsnavn, returtype og parametre.
  4. Funktionsdefinition omfatter funktionens krop.
  5. Funktionen er af to typer brugerdefineret funktion og biblioteksfunktion.
  6. I funktion kan vi ifølge to typer kalde efter værdi og kalde efter reference efter de passerede værdier.

Ofte stillede spørgsmål om funktioner i C

Q1. Definer funktioner.

Svar:

Funktioner er den kodeblok, der udføres, hver gang de kaldes under afvikling af et program.

Q2. Hvad er en fremadrettet erklæring?

Svar:

Nogle gange definerer vi funktionen efter dens kald for at give bedre let. I sådanne tilfælde erklærer vi funktion før deres definition og kald. En sådan erklæring kaldes Forward Declaration.

Q3. Hvad er forskellen mellem funktionserklæring og definition?

Svar:

Data som funktionsnavn, returtype og parameteren er inkluderet i funktionsdeklarationen, mens definitionen er funktionens krop. Alle disse data deles med compileren i henhold til deres tilsvarende trin.

Q4. Hvad er forskellen mellem funktionsargumenter og parametre?

Svar:

Funktionsparametre er de værdier, der er erklæret i en funktionserklæring. Hvorimod funktionsargumenter er de værdier, der sendes i funktionen under funktionskaldet.

Eksempel:

 int func(int x,int y); func(10,20);>

Her er int x og int y parametre, mens 10 og 20 er de argumenter, der sendes til funktionen.

For at vide mere om det, se denne artikel - Forskel mellem argumenter og parametre i C.

Q5. Kan vi returnere flere værdier fra en C-funktion?

Svar:

Nej, det er generelt ikke muligt at returnere flere værdier fra en funktion. Men vi kan enten bruge pointer til statiske eller heap-hukommelsesplaceringer for at returnere flere værdier, eller vi kan lægge data i struktur og returner derefter strukturen.

For at vide mere om det, se denne artikel - Hvordan returnerer man flere værdier fra en funktion i C eller C++?

Q6. Hvad er den faktiske og formelle parameter?

Svar:

Formel parameter: Variablerne erklæret i funktionsprototypen er kendt som formelle argumenter eller parametre.

Faktisk parameter: De værdier, der sendes i funktionen, er kendt som faktiske argumenter eller parametre.