Belangrijk verschil - Functieprototype versus functiedefinitie in C
Een functie is een groep uitspraken die wordt gebruikt om een specifieke taak uit te voeren. In C-programmering begint de uitvoering vanaf main (). Het is een functie. In plaats van alle instructies in hetzelfde programma te schrijven, kan het worden onderverdeeld in meerdere functies. Elke functie zal verschillende functionaliteiten uitvoeren. Het functie-prototype vertelt de compiler over de functienaam, retourtypen en parameters. Het is ook bekend als een functiedeclaratie. Elke functie heeft een bepaalde naam om deze te identificeren. De functie-instructies zijn geschreven binnen een paar accolades. De functies kunnen een waarde teruggeven. Er zijn enkele functies die geen waarde retourneren. De gegevens worden via de parameterlijst aan de functie doorgegeven. De functiedefinitie heeft de feitelijke functionaliteit die door de functie wordt uitgevoerd. Bij C-programmering is er een functieprototype en functiedefinitie. Het belangrijkste verschil tussen het functie-prototype en de functiedefinitie is dat het functie-prototype alleen de declaratie van de functie bevat, terwijl de functiedefinitie de daadwerkelijke implementatie van de functie bevat. De functiedefinitie heeft de lokale variabelen en de instructies die bepalen wat de functie doet.
Wat is functieprototype in C?
Function Prototype levert de functiedeclaratie. Het specificeert de naam van de functie, de retourtypen, de parameters. De retourtypen zijn het gegevenstype dat terugkeert uit de functie. Wanneer een functie een geheel getal retourneert, is het retourtype int. Wanneer een functie een float-waarde retourneert, is het retourtype een float. Als de functie geen waarde retourneert, is het een ongeldige functie. De functienaam wordt gebruikt om het te identificeren. C-trefwoorden kunnen niet worden gebruikt als functienamen. De gegevens worden met behulp van parameters aan de functie doorgegeven. Het functie-prototype bevat niet de echte implementatie van de functie. Het functie-prototype heeft de volgende syntaxis.
(parameterlijst);
Als er een functie is om het maximum van twee getallen te berekenen, kan de declaratie worden geschreven als int max (int num1, int num2); De maximale waarde moet worden gevonden in num1 en num2. Dat zijn gehele getallen en ze worden doorgegeven aan de functie. Het retourtype is in het begin ook int. Dus de functie retourneert een geheel getal. Het is niet nodig om de parameternamen in het functieprototype te schrijven. Maar het is noodzakelijk om de gegevenstypen te schrijven. Daarom, int max (int, int); is ook een geldig functie-prototype. Als er twee gehele getallen zijn als num1, num2, num3 en het prototype wordt geschreven als int max(int num1, int num2, num3); het is ongeldig. De num1, num2 hebben de datatypes, maar num3 heeft geen datatype. Daarom is het ongeldig.
Raadpleeg het onderstaande programma.
inclusief
int CarMax(int x, int y);
int main(){
int p=10;
int q=20;
int antwoord;
antwoord=calMax(p, q);
printf(“De maximale waarde is %d\n”, antwoord);
retour 0;
}
int calMax(int p, int q){
int waarde;
if(p>q) {
waarde=p;
}
anders {
waarde=q;
}
retourwaarde;
}
Volgens het bovenstaande toont de tweede instructie het functie-prototype. Het heeft niet de uitvoering. De daadwerkelijke implementatie is na het hoofdprogramma. De functie-prototypes zijn handiger bij het definiëren van een functie in het ene bronbestand en het aanroepen van die functie in een ander bestand in een ander bestand.
Wat is functiedefinitie in C?
De functiedefinitie heeft de daadwerkelijke implementatie van de functie. Hierin staat wat de functie moet doen. Wanneer het programma de functie oproept, wordt de besturing overgedragen naar de opgeroepen functie. Na het uitvoeren van de functie keert de besturing terug naar de hoofdfunctie. De benodigde gegevens worden als parameterlijst aan de functie doorgegeven. Als er een retourwaarde is, wordt het retourtype vermeld. Als er geen retourwaarden zijn, is het retourtype ongeldig. Raadpleeg de onderstaande functie om de oppervlakte van een driehoek te berekenen.
inclusief
float calArea(int x, int y);
int hoofd () {
int p=10;
int q=20;
flaot gebied;
area=calArea(p, q);
printf (“De maximale waarde is %f\n”, gebied);
retour 0;
}
float calArea (int x, int y) {
floatwaarde;
waarde=0,5xy;
retourwaarde;
}
Volgens het bovenstaande programma geeft de tweede instructie het functie-prototype aan. De daadwerkelijke implementatie van wat de functie uitvoert, wordt na het hoofdprogramma geschreven. Het is de functiedefinitie. De p- en q-waarden worden doorgegeven aan de functie calArea. De variabelewaarde is een lokale variabele voor de functie calArea. Het gebied wordt berekend en toegewezen aan de variabele waarde. Daarna keert het terug naar het hoofdprogramma.
Wat zijn de overeenkomsten tussen functieprototype en functiedefinitie in C?
- Zowel het functieprototype als de functiedefinitie zijn gerelateerd aan functies.
- Zowel het functieprototype als de functiedefinitie bevatten de functienaam.
- Zowel het functieprototype als de functiedefinitie bevatten retourtypen.
- Zowel het functieprototype als de functiedefinitie bevatten parameters.
Wat is het verschil tussen functieprototype en functiedefinitie in C?
Functieprototype versus functiedefinitie in C |
|
Het functie-prototype specificeert de functienaam, het retourtype, parameters maar laat de hoofdtekst van de functie weg. | De functiedefinitie specificeert de functienaam, retourtype; parameters bevatten een functietekst. |
Implementatie | |
Het functie-prototype heeft niet de functie-implementatie. | De functiedefinitie heeft de functie-implementatie. |
Samenvatting – Functieprototype versus functiedefinitie in C
Het gebruik van functies in programma's heeft voordelen. Functies vergroten de herbruikbaarheid van code. Het is niet nodig om steeds dezelfde code te schrijven. In plaats daarvan kan de programmeur het programma splitsen en de benodigde functie oproepen. In C zijn er bibliotheekfuncties. Deze functies worden gedeclareerd in de C-headerbestanden. Sommigen van hen zijn printf (), scanf () enz. De programmeur kan ook zijn eigen functies schrijven. Er zijn twee termen die worden geassocieerd met functies in C. Ze functioneren prototype en functiedefinitie. Het verschil tussen het functie-prototype en de functiedefinitie in C is dat het functie-prototype alleen de declaratie van de functie bevat, terwijl de functiedefinitie de daadwerkelijke implementatie van de functie bevat.
Download de PDF van functieprototype versus functiedefinitie in C
U kunt de PDF-versie van dit artikel downloaden en gebruiken voor offline doeleinden volgens de citatienota. Download hier de PDF-versie: Verschil tussen functieprototype en functiedefinitie in C