Sterk typen
C is een zwak getypte taal, dat wil gezegd, de compiler maakt bewerkingen mogelijk zoals toewijzing en vergelijking tussen variabelen van verschillende typen. Met C kan bijvoorbeeld de waarde van een variabele worden omgezet naar een ander type. De mogelijkheid om variabelen van verschillende typen in dezelfde expressie te gebruiken, bevordert flexibiliteit en efficiëntie.
Een sterk getypte taal legt beperkingen op voor bewerkingen tussen variabelen van verschillende typen. In die gevallen geeft de compiler een fout op die de bewerking verbiedt. Deze strikte richtlijnen met betrekking tot gegevenstypen zijn ontworpen om potentiële fouten te voorkomen.
De problemen met het gebruik van een zwak getypte taal, zoals C voor externe procedure-aanroepen, is dat gedistribueerde toepassingen kunnen worden uitgevoerd op verschillende computers met verschillende C-compilers en verschillende architecturen. Wanneer een toepassing op slechts één computer wordt uitgevoerd, hoeft u zich niet bezig te houden met de interne gegevensindeling, omdat de gegevens op een consistente manier worden verwerkt. In een gedistribueerde computeromgeving kunnen verschillende computers echter verschillende definities gebruiken voor hun basisgegevenstypen. Sommige computers definiëren bijvoorbeeld het int type, dus de interne weergave is 16 bits, terwijl andere computers 32 bits gebruiken. Eén computerarchitectuur, ook wel 'little endian' genoemd, wijst de minst significante byte van gegevens toe aan het laagste geheugenadres en de belangrijkste byte aan het hoogste adres. Een andere architectuur, bekend als 'big endian', wijst de minst significante byte toe aan het hoogste geheugenadres dat aan die gegevens is gekoppeld.
Externe procedure-aanroepen vereisen strikte controle over parametertypen. Voor het afhandelen van gegevensoverdracht en -conversie via het netwerk dwingt MIDL strikt typebeperkingen af voor gegevens die via het netwerk worden overgedragen. Daarom bevat MIDL een set goed gedefinieerde basistypen. MIDL dwingt sterke typen af door het gebruik van trefwoorden die ondubbelzinnig de grootte en het type gegevens definiëren. Het meest zichtbare effect van sterk typen is dat MIDL geen variabelen van het type void *toestaat.
In de volgende onderwerpen worden in deze sectie de MIDL-taalfuncties besproken die sterke gegevenstypen afdwingen:
- basistypen
- ondertekende en niet-ondertekende typen
- Wide-Character Typen
- Structuren
- Unions
- opgesomde typen
- matrices
- functiekenmerken
- veldkenmerken
- Drie aanwijzertypen
- typekenmerken