Compartir a través de


Tipado fuerte

C es un lenguaje débilmente tipado, es decir, el compilador permite operaciones como la asignación y la comparación entre variables de diferentes tipos. Por ejemplo, C permite convertir el valor de una variable en otro tipo. La capacidad de usar variables de diferentes tipos en la misma expresión promueve la flexibilidad, así como la eficacia.

Un lenguaje fuertemente tipado impone restricciones en las operaciones entre variables de diferentes tipos. En esos casos, el compilador emite un error que prohíbe la operación. Estas directrices estrictas con respecto a los tipos de datos están diseñadas para evitar posibles errores.

La dificultad de usar un lenguaje débilmente tipado, como C para llamadas a procedimientos remotos, es que las aplicaciones distribuidas se pueden ejecutar en varios equipos diferentes con diferentes compiladores de C y arquitecturas diferentes. Cuando una aplicación se ejecuta solo en un equipo, no tiene que preocuparse por el formato de datos interno porque los datos se controlan de forma coherente. Sin embargo, en un entorno informático distribuido, diferentes equipos pueden usar definiciones diferentes para sus tipos de datos base. Por ejemplo, algunos equipos definen el tipo int , por lo que su representación interna es de 16 bits, mientras que otros equipos usan 32 bits. Una arquitectura de equipo, conocida como "little endian", asigna el byte menos significativo de los datos a la dirección de memoria más baja y el byte más significativo a la dirección más alta. Otra arquitectura, conocida como "big endian", asigna el byte menos significativo a la dirección de memoria más alta asociada a esos datos.

Las llamadas a procedimientos remotos requieren un control estricto sobre los tipos de parámetros. Para controlar la transmisión y conversión de datos a través de la red, MIDL aplica estrictamente restricciones de tipo para los datos transferidos a través de la red. Por este motivo, MIDL incluye un conjunto de tipos base bien definidos. MIDL aplica una escritura segura al exigir el uso de palabras clave que definen de forma inequívoca el tamaño y el tipo de datos. El efecto más visible de la escritura fuerte es que MIDL no permite variables del tipo void *.

En los temas siguientes, en esta sección se describen las características del lenguaje MIDL que aplican la escritura de datos seguros: