User manual
53
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); // voer de eerste parameter in
Msg_WriteFloat(param2); // voer de tweede parameter in
}
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); // u kunt numerieke constanten invoeren …
a=100;
f=12.0; // maar ook variabelen en zelfs numerieke termen
}
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[ ])
{