nyckelskillnad – funktionsprototyp vs funktionsdefinition i C
En funktion är en grupp satser som används för att utföra en specifik uppgift. I C-programmering startar exekveringen från main (). Det är en funktion. Istället för att skriva alla påståenden i samma program kan det delas upp i flera funktioner. Varje funktion kommer att utföra olika funktioner. Funktionsprototypen berättar för kompilatorn om funktionsnamn, returtyper och parametrar. Det är också känt som en funktionsdeklaration. Varje funktion har ett särskilt namn för att identifiera den. Funktionssatserna skrivs inuti ett par hängslen. Funktionerna kan returnera ett värde. Det finns vissa funktioner som inte returnerar ett värde. Data överförs till funktionen med hjälp av parameterlistan. Funktionsdefinitionen har den faktiska funktionalitet som funktionen utför. I C-programmering finns funktionsprototyp och funktionsdefinition. Den viktigaste skillnaden mellan funktionsprototypen och funktionsdefinitionen är att funktionsprototypen endast innehåller deklarationen av funktionen medan funktionsdefinitionen innehåller den faktiska implementeringen av funktionen. Funktionsdefinitionen har de lokala variablerna och de satser som bestämmer vad funktionen gör.
Vad är funktionsprototyp i C?
Funktionsprototyp tillhandahåller funktionsdeklarationen. Den specificerar namnet på funktionen, returtyperna, parametrarna. Returtyperna är den datatyp som returnerar från funktionen. När en funktion returnerar ett heltal är returtypen int. När en funktion returnerar ett flytande värde, är returtypen ett flytande. Om funktionen inte returnerar något värde är det en ogiltig funktion. Funktionsnamnet används för att identifiera den. C nyckelord kan inte användas som funktionsnamn. Data skickas till funktionen med hjälp av parametrar. Funktionsprototypen innehåller inte den verkliga implementeringen av funktionen. Funktionsprototypen har följande syntax.
(parameterlista);
Om det finns en funktion för att beräkna maxim alt två tal kan deklarationen skrivas som int max (int num1, int num2); Det maximala värdet ska hittas i num1 och num2. De är heltal, och de skickas till funktionen. Returtypen är i början också int. Så, funktionen returnerar ett heltalsvärde. Det är inte nödvändigt att skriva parameternamnen i funktionsprototypen. Men det är nödvändigt att skriva datatyperna. Därför int max (int, int); är också en giltig funktionsprototyp. Om det finns två heltal som num1, num2, num3 och prototypen skrivs som int max(int num1, int num2, num3); den är ogiltig.num1, num2 har datatyperna, men num3 har ingen datatyp. Därför är den ogiltig.
Se programmet nedan.
include
int CarMax(int x, int y);
int main(){
int p=10;
int q=20;
int svar;
answer=calMax(p, q);
printf(“Högsta värdet är %d\n”, svar);
return 0;
}
int calMax(int p, int q){
int värde;
if(p>q) {
value=p;
}
else {
value=q;
}
returvärde;
}
Enligt ovanstående visar den andra satsen funktionsprototypen. Den har inte genomförandet. Själva genomförandet är efter huvudprogrammet. Funktionsprototyperna är mer användbara när man definierar en funktion i en källfil och anropar den funktionen i en annan i en annan fil.
Vad är funktionsdefinition i C?
Funktionsdefinitionen har den faktiska implementeringen av funktionen. Den innehåller vad funktionen ska göra. När programmet anropar funktionen överförs kontrollen till den anropade funktionen. Efter utförandet av funktionen återgår kontrollen till huvudfunktionen. Erforderlig data skickas till funktionen som en parameterlista. Om det finns ett värde som returnerar nämns returtypen. Om det inte finns några returnerande värden är returtypen ogiltig. Se funktionen nedan för att beräkna arean av en triangel.
include
float calArea(int x, int y);
int main () {
int p=10;
int q=20;
flat area;
area=calArea(p, q);
printf ("Högsta värdet är %f\n", område);
return 0;
}
float calArea (int x, int y) {
flytande värde;
värde=0,5xy;
returvärde;
}
Enligt ovanstående program indikerar den andra satsen funktionsprototypen. Själva implementeringen av vad funktionen utför skrivs efter huvudprogrammet. Det är funktionsdefinitionen. P- och q-värdena skickas till calArea-funktionen. Variabelvärdet är en lokal variabel för calArea-funktionen. Arean beräknas och tilldelas variabelvärdet. Sedan återgår det till huvudprogrammet.
Vilka är likheterna mellan funktionsprototyp och funktionsdefinition i C?
- Både funktionsprototyp och funktionsdefinition är relaterade till funktioner.
- Både funktionsprototyp och funktionsdefinition innehåller funktionsnamn.
- Både funktionsprototyp och funktionsdefinition innehåller returtyper.
- Både funktionsprototyp och funktionsdefinition innehåller parametrar.
Vad är skillnaden mellan funktionsprototyp och funktionsdefinition i C?
Funktionsprototyp vs funktionsdefinition i C |
|
Funktionsprototypen anger funktionsnamn, returtyp, parametrar men utelämnar funktionskroppen. | Funktionsdefinitionen anger funktionsnamn, returtyp; parametrar inkluderar en funktionskropp. |
Implementation | |
Funktionsprototypen har inte funktionsimplementeringen. | Funktionsdefinitionen har funktionsimplementeringen. |
Sammanfattning – Funktionsprototyp vs funktionsdefinition i C
Att använda funktioner i program har fördelar. Funktioner ökar kodens återanvändbarhet. Det är inte nödvändigt att skriva samma kod om och om igen. Istället kan programmeraren dela upp programmet och anropa den nödvändiga funktionen. I C finns biblioteksfunktioner. Dessa funktioner deklareras i C-huvudfilerna. Några av dem är printf (), scanf () etc. Programmeraren kan också skriva sina egna funktioner. Det finns två termer som är förknippade med funktioner i C. De fungerar som prototyp och funktionsdefinition. Skillnaden mellan funktionsprototypen och funktionsdefinitionen i C är att funktionsprototypen endast innehåller deklarationen av funktionen medan funktionsdefinitionen innehåller själva implementeringen av funktionen.
Ladda ned PDF-filen för Function Prototype vs Function Definition i C
Du kan ladda ner PDF-versionen av den här artikeln och använda den för offlineändamål enligt citat. Ladda ner PDF-versionen här: Skillnaden mellan funktionsprototyp och funktionsdefinition i C