Erős gépelés
A C egy gyengén gépelt nyelv, azaz a fordító olyan műveleteket tesz lehetővé, mint például a hozzárendelés és az összehasonlítás a különböző típusú változók között. A C például lehetővé teszi, hogy egy változó értéke egy másik típusba legyen vetve. A különböző típusú változók ugyanazon kifejezésben való használatának képessége a rugalmasságot és a hatékonyságot is elősegíti.
Az erősen gépelt nyelv korlátozásokat vezet be a különböző típusú változók műveleteire. Ezekben az esetekben a fordító hibát ad ki, amely tiltja a műveletet. Az adattípusokra vonatkozó szigorú irányelvek célja a lehetséges hibák elkerülése.
A gyengén gépelt nyelv, például a C távoli eljáráshívásokhoz való használatának nehézsége az, hogy az elosztott alkalmazások több különböző számítógépen, különböző C fordítókkal és különböző architektúrákkal futtathatók. Ha egy alkalmazás csak egy számítógépen fut, nem kell foglalkoznia a belső adatformátummal, mert az adatok kezelése egységes módon történik. Elosztott számítástechnikai környezetben azonban a különböző számítógépek különböző definíciókat használhatnak az alapadattípusaikhoz. Egyes számítógépek például a int típust határozzák meg, így belső ábrázolása 16 bit, míg más számítógépek 32 bitet használnak. Az egyik számítógéparchitektúra, az úgynevezett "kis endian" az adatok legkisebb jelentős bájtját rendeli a legalacsonyabb memóriacímhez, a legjelentősebb bájtot pedig a legmagasabb címhez. Egy másik, "big endian" néven ismert architektúra a legkisebb jelentős bájtot rendeli hozzá az adatokhoz társított legmagasabb memóriacímhez.
A távoli eljáráshívások szigorú ellenőrzést igényelnek a paramétertípusok felett. A hálózaton keresztüli adatátvitel és átalakítás kezeléséhez a MIDL szigorúan kikényszeríti a hálózaton keresztül továbbított adatok típuskorlátozásait. Ezért a MIDL jól definiált alaptípusokattartalmaz. A MIDL kényszeríti az erős gépelést azáltal, hogy olyan kulcsszavakat használ, amelyek egyértelműen meghatározzák az adatok méretét és típusát. Az erős gépelés legláthatóbb hatása, hogy a MIDL nem engedélyezi a üres *típusú változókat.
A következő témakörökben ez a szakasz az erős adatbevitelt kényszerítő MIDL nyelvi funkciókat ismerteti:
- alaptípusok
- aláírt és aláíratlan típusok
- Wide-Character típusok
- struktúrák
- Szakszervezetek
- Enumerált típusok
- tömbök
- függvényattribútumok
- mezőattribútumok
- Három mutatótípus
- Típusattribútumok