En funktion er en gruppe udsagn, der bruges til at udføre en bestemt opgave. Ved C-programmering starter udførelsen fra main (). Det er en funktion. I stedet for at skrive alle udsagn i det samme program, kan det opdeles i flere funktioner. Hver funktion udfører forskellige funktionaliteter. Funktionsprototypen fortæller kompilatoren om funktionsnavnet, returtyper og parametre. Det er også kendt som en funktionserklæring. Hver funktion har et bestemt navn til at identificere det. Funktionsangivelserne er skrevet inde i et par krøllede seler. Funktionerne kan returnere en værdi. Der er nogle funktioner, der ikke returnerer en værdi. Dataene overføres til funktionen vha. Parameterlisten. Funktionsdefinitionen har den faktiske funktionalitet, der udføres af funktionen. I C-programmering er der funktionsprototype og funktionsdefinition. Det vigtigste forskel mellem funktionsprototypen og funktionsdefinitionen er, at funktionsprototype indeholder kun erklæringen af funktionen, mens funktionsdefinitionen indeholder den faktiske implementering af funktionen. Funktionsdefinitionen har de lokale variabler og udsagn, der bestemmer, hvad funktionen gør.
1. Oversigt og nøgleforskel
2. Hvad er Funktionsprototype i C
3. Hvad er funktionsdefinition i C
4. Ligheder mellem Funktionsprototype og Funktionsdefinition i C
5. Sammenligning side ved side - Funktionsprototype vs Funktionsdefinition i C i tabelform
6. Resume
Funktionsprototype leverer funktionserklæringen. Det specificerer navnet på funktionen, returtyperne, parametrene. Returtyperne er den datatype, der vender tilbage fra funktionen. Når en funktion returnerer et heltal, er returtypen int. Når en funktion returnerer en float-værdi, er returtypen en float. Hvis funktionen ikke returnerer nogen værdi, er det en tom funktion. Funktionsnavnet bruges til at identificere det. C-nøgleord kan ikke bruges som funktionsnavne. Dataene overføres til funktionen ved hjælp af parametre. Funktionsprototypen indeholder ikke den reelle implementering af funktionen. Funktionsprototypen har følgende syntaks.
(parameterliste);
Hvis der er en funktion til at beregne maksimalt to tal, kan erklæringen skrives som int max (int num1, int num2); Den maksimale værdi skal findes i num1 og num2. Disse er heltal, og de overføres til funktionen. Returtypen er i begyndelsen også int. Så funktionen returnerer en heltalværdi. Det er ikke nødvendigt at skrive parameternavne i funktionsprototypen. Men det er nødvendigt at skrive datatyperne. Derfor int max (int, int); er også en gyldig prototype. Hvis der er to heltal som num1, num2, num3, og prototypen skrives som int max (int num1, int num2, num3); det er ugyldigt. Num1, num2 har datatyperne, men num3 har ikke en datatype. Derfor er den ugyldig.
Se nedenstående program.
#omfatte
int CarMax (int x, int y);
int main ()
int p = 10;
int q = 20;
int svar;
svar = calMax (p, q);
printf ("Den maksimale værdi er% d \ n", svar);
retur 0;
int calMax (int p, int q)
int-værdi;
hvis (p> q)
værdi = p;
ellers
værdi = q;
returværdi;
I henhold til ovenstående viser den anden erklæring funktionsprototypen. Det har ikke implementeringen. Den faktiske implementering er efter hovedprogrammet. Funktionsprototyperne er mere nyttige, når du definerer en funktion i en kildefil og kalder den funktion i en anden i en anden fil.
Funktionsdefinitionen har den faktiske implementering af funktionen. Den indeholder, hvad funktionen skal gøre. Når programmet kalder funktionen, overføres kontrollen til den kaldte funktion. Efter udførelsen af funktionen vender kontrollen tilbage til hovedfunktionen. De krævede data overføres til funktionen som en parameterliste. Hvis der returnerer en værdi, nævnes returtypen. Hvis der ikke er nogen returnerende værdier, er returtypen ugyldig. Se nedenstående funktion for at beregne arealet af en trekant.
#omfatte
float calArea (int x, int y);
int main ()
int p = 10;
int q = 20;
flaot område;
areal = calArea (p, q);
printf ("Den maksimale værdi er% f \ n", område);
retur 0;
float calArea (int x, int y)
float værdi;
værdi = 0,5 * x * y;
returværdi;
I henhold til ovenstående program angiver den anden erklæring funktionsprototypen. Den faktiske implementering af, hvad funktionen udfører, skrives efter hovedprogrammet. Det er funktionsdefinitionen. Værdierne p og q overføres til calArea-funktionen. Den variable værdi er en lokal variabel til calArea-funktionen. Området beregnes og tildeles den variable værdi. Derefter returneres det til hovedprogrammet.
Funktionsprototype vs Funktionsdefinition i C | |
Funktionsprototypen specificerer funktionsnavnet, returtypen, parametrene, men udelader funktionskroppen. | Funktionsdefinitionen specificerer funktionsnavnet, returtypen; parametre inkluderer et funktionsorgan. |
Implementering | |
Funktionsprototypen har ikke funktionens implementering. | Funktionsdefinitionen har funktionsimplementeringen. |
Brug af funktioner i programmer har fordele. Funktioner øger genanvendeligheden af kode. Det er ikke nødvendigt at skrive den samme kode igen og igen. I stedet kan programmereren opdele programmet og kalde den nødvendige funktion. I C er der biblioteksfunktioner. Disse funktioner er deklareret i C-headerfilerne. Nogle af dem er printf (), scanf () osv. Programmereren kan også skrive deres egne funktioner. Der er to udtryk, der er forbundet med funktioner i C. De fungerer prototype og funktionsdefinition. Forskellen mellem funktionsprototypen og funktionsdefinitionen i C er, at funktionsprototypen kun indeholder erklæringen af funktionen, mens funktionsdefinitionen indeholder den faktiske implementering af funktionen.
Du kan downloade PDF-versionen af denne artikel og bruge den til offline-formål som angivet i citatnotatet. Download PDF-versionen her: Forskel mellem Funktionsprototype og Funktionsdefinition i C
1.C Funktionsdefinitioner. Tilgængelig her
2.tutorialspoint.com. “C-funktioner.” Pointen. Tilgængelig her
1.'The C-programmeringssproglogo'By Rezonansowy (Public Domain) via Commons Wikimedia