t.value = 82.5;
Zo kunnen ook de velden van gekoppelde datatypes bereikt worden, b.v.:
t.pos.x = 31;
5.5.3
Definitie en indicering van variabele arrays
C2 ondersteunt de definitie van variabele
variabelenkenmerk in rechte haakjes [ ] een constante term. Het resultaat van de term legt het aantal
array – elementen vast.
Typ ArrayName [constante waarde];
b.v.:
float coeff [10];
De benodigde geheugenruimte kan berekend worden uit de grootte van de aparte elementen,
vermenigvuldigd met het aantal elementen. Dus worden voor de float – array in het bovenstaande
voorbeeld 80 bytes bezet (10*8 bytes).
De toegang tot aparte array – elementen in termen en toewijzingsopdrachten vindt plaats via een
indexterm in rechte haakjes. De indexterm kan een willekeurige, ook niet constante, numerieke term zijn.
De waarde ervan wordt voor de programma – looptijd berekend.
B.v.
y [i] = coeff [i] * x[1] + coeff [i -1] * x [i-1] ;
De index is op nul gebaseerd!
Dat betekent dat de indexwaarde 0 betrekking heeft op het eerste element, de waarde 1 op het tweede,
enz.
Terwijl het programma loopt vindt er geen controle van de index plaats!
Een vaak voorkomende fout in gebruiksprogramma's is het overschrijden van het toelaatbare
indexbereik. Dit kan leiden van eenvoudige plaatselijk foutgedrag in het programma tot een volledige
crash van het systeem van de C-Control II unit.
Meerdimensionale arrays worden in C2 niet ondersteund. Een vergelijkbare functionaliteit kan via het
gebruik van
ndimensionale arrays van samengestelde datatypes gemaakt worden.
B.v.:
Type Line
{
int row [10] ;
} ;
Type Matrix
{
Line line [10]
} ;
Matrix m;
int x;
int i, k;
...
x = m.line[i] .row[k];
Deze syntax vraagt weliswaar wat meer schrijfwerk dan een vergelijkbaar m [i] [k] in andere program-
meertalen, maar daardoor is de leesbaarheid van C2 – programma's op deze plaats aanzienlijk beter.
5.5.4 Initialisering
De waarde van een variabele volgens de definitie is in eerste instantie onbepaald. Voor een variabele
voor het berekenen van een term er bij gehaald wordt, moet deze geïnitialiseerd worden. Anders is ook
ndimensionale arrays. Bij de definitie volgt dan na het
28