Starke Eingabe

C ist eine schwach typisierte Sprache, d. h. der Compiler ermöglicht Vorgänge wie die Zuweisung und den Vergleich zwischen Variablen unterschiedlicher Typen. Mit C kann beispielsweise der Wert einer Variablen in einen anderen Typ umgewandelt werden. Die Möglichkeit, Variablen unterschiedlicher Typen im selben Ausdruck zu verwenden, erhöht sowohl die Flexibilität als auch die Effizienz.

Eine stark typisierte Sprache erzwingt Einschränkungen für Vorgänge zwischen Variablen unterschiedlicher Typen. In diesen Fällen gibt der Compiler einen Fehler aus, der den Vorgang verhindert. Diese strengen Richtlinien für Datentypen sind darauf ausgelegt, potenzielle Fehler zu vermeiden.

Die Schwierigkeit bei der Verwendung einer schwach typisierten Sprache wie C für Remoteprozeduraufrufe besteht darin, dass verteilte Anwendungen auf verschiedenen Computern mit unterschiedlichen C-Compilern und unterschiedlichen Architekturen ausgeführt werden können. Wenn eine Anwendung nur auf einem Computer ausgeführt wird, müssen Sie sich nicht um das interne Datenformat kümmern, da die Daten konsistent behandelt werden. In einer verteilten Computerumgebung können jedoch verschiedene Computer unterschiedliche Definitionen für ihre Basisdatentypen verwenden. Beispielsweise definieren einige Computer den Int-Typ , sodass seine interne Darstellung 16 Bits beträgt, während andere Computer 32 Bits verwenden. Eine Computerarchitektur, die als "little endian" bezeichnet wird, weist der niedrigsten Speicheradresse das geringste Datenbyte und das bedeutendste Byte der höchsten Adresse zu. Eine andere Architektur, die als "Big Endian" bezeichnet wird, weist das am wenigsten signifikante Byte der höchsten Speicheradresse zu, die diesen Daten zugeordnet ist.

Remoteprozeduraufrufe erfordern eine strenge Kontrolle über Parametertypen. Um die Datenübertragung und -konvertierung über das Netzwerk zu verarbeiten, erzwingt MIDL strikte Typbeschränkungen für Daten, die über das Netzwerk übertragen werden. Aus diesem Grund enthält MIDL eine Reihe von klar definierten Basistypen. MIDL erzwingt starke Eingaben, indem die Verwendung von Schlüsselwörtern vorgeschrieben wird, die die Größe und den Typ der Daten eindeutig definieren. Der sichtbarste Effekt starker Typisierung ist, dass MIDL keine Variablen des Typs void * zulässt.

In den folgenden Themen werden in diesem Abschnitt die MIDL-Sprachfeatures erläutert, die eine starke Datentypisierung erzwingen: