Parameteroverdracht
Opdat functies flexibel gebruikt kunnen worden, kunt u ze parameteriseren. Hiervoor worden
in de haakjes na de functienaam de parameters voor de functie gescheiden door komma's
doorgegeven. U geeft net als in de variabelendeclaratie eerst het datatype en daarna de
parameternaam aan. Als u geen parameters wilt doorgeven, dan schrijft u void tussen de
ronde haakjes. Een voorbeeld:
void
funct1
(word
param1, float param2)
{
Msg_WriteHex(param1);
Msg_WriteFloat(param2);
}
Net als bij locale variabelen zijn ingevoerde parameters alleen in de functie zelf zichtbaar.
Om de functie func1 met de parameters op te roepen schrijft u bij het oproepen de
parameters in dezelfde volgorde als waarin ze bij func1 gedefinieerd zijn. Als de functie
geen parameters krijgt, laat u de haakjes leeg.
void
main (void)
{
word a;
float
f;
funct1(128,12.0);
a=100;
f=12.0;
}
U moet bij het oproepen van een functie steeds alle parameters aangeven. De volgende
oproepen zouden ongeldig zijn:
func1();
// func1 krijgt 2 parameters!
func1(128);
// func1 krijgt 2 parameters!
Terugloopparameters
Het is niet alleen mogelijk parameters door te geven, een functie kan ook een
terugloopwaarde hebben. Het datatype van deze waarde wordt bij de functiedefinitie voor de
naam van de functie aangegeven. Als u geen waarde wilt laten teruglopen, dan gebruikt u
void als datatype.
int
func1
(int
a)
{
return a-10;
}
De terugloopwaarde wordt binnen de functie met de aanwijzing "return term" aangegeven.
Als u een functie van het type void heeft, kunt u de return aanwijzing ook zonder parameter
gebruiken om de functie te verlaten.
Referenties
Omdat het niet mogelijk is arrays als parameter door te geven, kunt u uw toevlucht nemen
tot arrays via referenties. Daarvoor schrijft u in de parameterdeclaratie van een functie een
paar rechte haakjes achter de parameternaam:
int
stringlength
(char
str[ ])
{
// voer de eerste parameter in
// voer de tweede parameter in
// u kunt numerieke constanten invoeren ...
// maar ook variabelen en zelfs numerieke termen
53