I denne vejledning lærer du at oprette brugerdefinerede funktioner i C-programmering ved hjælp af et eksempel.
En funktion er en blok af kode, der udfører en bestemt opgave.
C giver dig mulighed for at definere funktioner efter dit behov. Disse funktioner er kendt som brugerdefinerede funktioner. For eksempel:
Antag at du skal oprette en cirkel og farve den afhængigt af radius og farve. Du kan oprette to funktioner til at løse dette problem:
createCircle()
fungerecolor()
fungere
Eksempel: Brugerdefineret funktion
Her er et eksempel på at tilføje to heltal. For at udføre denne opgave har vi oprettet en brugerdefineret addNumbers()
.
#include int addNumbers(int a, int b); // function prototype int main() ( int n1,n2,sum; printf("Enters two numbers: "); scanf("%d %d",&n1,&n2); sum = addNumbers(n1, n2); // function call printf("sum = %d",sum); return 0; ) int addNumbers(int a, int b) // function definition ( int result; result = a+b; return result; // return statement )
Funktionsprototype
En funktionsprototype er simpelthen erklæringen af en funktion, der specificerer funktionens navn, parametre og returtype. Det indeholder ikke funktionslegeme.
En funktionsprototype giver information til kompilatoren om, at funktionen senere kan bruges i programmet.
Syntaks for funktionsprototype
returnType funktionsnavn (type1 argument1, type2 argument2,…);
I ovenstående eksempel int addNumbers(int a, int b);
er funktionsprototypen, der giver følgende information til compileren:
- funktionens navn er
addNumbers()
- funktionens returtype er
int
- to argumenter af typen
int
sendes til funktionen
Funktionsprototypen er ikke nødvendig, hvis den brugerdefinerede funktion er defineret før main()
funktionen.
Opkald til en funktion
Kontrol af programmet overføres til den brugerdefinerede funktion ved at kalde det.
Syntaks for funktionsopkald
funktionsnavn (argument1, argument2, …);
I ovenstående eksempel foretages funktionsopkaldet ved hjælp af addNumbers(n1, n2);
udsagn inde i main()
funktionen.
Funktionsdefinition
Funktionsdefinition indeholder kodeblokken til at udføre en bestemt opgave. I vores eksempel tilføjer du to tal og returnerer det.
Syntaks for funktionsdefinition
returnType functionName (type1 argument1, type2 argument2,…) (// body of the function)
Når en funktion kaldes, overføres styringen af programmet til funktionsdefinitionen. Og kompilatoren begynder at udføre koder inde i kroppen af en funktion.
Videregivelse af argumenter til en funktion
I programmering refererer argument til den variabel, der sendes til funktionen. I ovenstående eksempel overføres to variabler n1 og n2 under funktionsopkaldet.
Parametrene a og b accepterer de beståede argumenter i funktionsdefinitionen. Disse argumenter kaldes formelle parametre for funktionen.
Den type argumenter, der sendes til en funktion, og de formelle parametre skal matche, ellers kaster compileren en fejl.
Hvis n1 er af char-type, bør a også være af char-type. Hvis n2 er af flydetype, skal variabel b også være af flydetype.
En funktion kan også kaldes uden at videregive et argument.
Returerklæring
Retursætningen afslutter udførelsen af en funktion og returnerer en værdi til den kaldende funktion. Programstyringen overføres til opkaldsfunktionen efter returopgørelsen.
I ovenstående eksempel returneres værdien af resultatvariablen til hovedfunktionen. Som variabel i main()
funktionen tildeles denne værdi.
Syntaks for return statement
returnere (udtryk);
For eksempel,
returnere en; returnere (a + b);
Værdien, der returneres fra funktionen, og den returtype, der er angivet i funktionsprototypen og funktionsdefinitionen, skal stemme overens.
Besøg denne side for at lære mere om videregivelse af argumenter og returnering af værdi fra en funktion.