Frappe forte
C est un langage faiblement typé, autrement dit, le compilateur autorise les opérations telles que l’affectation et la comparaison entre les variables de différents types. Par exemple, C autorise la conversion d’une variable en un autre type. La possibilité d’utiliser des variables de différents types dans la même expression favorise la flexibilité et l’efficacité.
Un langage fortement typé impose des restrictions sur les opérations entre les variables de différents types. Dans ces cas, le compilateur émet une erreur interdisant l’opération. Ces instructions strictes concernant les types de données sont conçues pour éviter les erreurs potentielles.
La difficulté avec l’utilisation d’un langage faiblement typé comme C pour les appels de procédure distante est que les applications distribuées peuvent s’exécuter sur plusieurs ordinateurs différents avec différents compilateurs C et différentes architectures. Lorsqu’une application s’exécute sur un seul ordinateur, vous n’avez pas à vous soucier du format de données interne, car les données sont gérées de manière cohérente. Toutefois, dans un environnement informatique distribué, différents ordinateurs peuvent utiliser différentes définitions pour leurs types de données de base. Par exemple, certains ordinateurs définissent le type int, de sorte que sa représentation interne est de 16 bits, tandis que d’autres ordinateurs utilisent 32 bits. Une architecture d’ordinateur, appelée « little endian », affecte l’octet le moins significatif des données à l’adresse mémoire la plus basse et l’octet le plus significatif à l’adresse la plus élevée. Une autre architecture, appelée « big endian », affecte l’octet le moins significatif à l’adresse mémoire la plus élevée associée à ces données.
Les appels de procédure distante nécessitent un contrôle strict sur les types de paramètres. Pour gérer la transmission et la conversion des données sur le réseau, MIDL applique strictement les restrictions de type pour les données transférées sur le réseau. Pour cette raison, MIDL inclut un ensemble de types de base bien définis . MIDL applique une frappe forte en demandant l’utilisation de mots clés qui définissent sans ambiguïté la taille et le type de données. L’effet le plus visible du typage fort est que MIDL n’autorise pas les variables du type void *.
Dans les rubriques suivantes, cette section décrit les fonctionnalités du langage MIDL qui appliquent un type de données fort :
- types de base
- types signés et non signés
- Wide-Character types
- structures
- Unions
- types énumérés
- Tableaux
- attributs de fonction
- attributs de champ
- trois types de pointeurs
- attributs de type