强键入

C 是一种弱类型语言,即编译器允许在不同类型的变量之间进行赋值和比较等作。 例如,C 允许将变量的值强制转换为另一种类型。 在同一表达式中使用不同类型的变量可提高灵活性和效率。

强类型语言对不同类型的变量中的作施加限制。 在这些情况下,编译器会发出禁止作的错误。 这些有关数据类型的严格准则旨在避免潜在的错误。

使用弱类型语言(如 C)进行远程过程调用的困难在于,分布式应用程序可以在具有不同 C 编译器和不同体系结构的多个不同计算机上运行。 仅当应用程序在一台计算机上运行时,无需关注内部数据格式,因为数据以一致的方式处理。 但是,在分布式计算环境中,不同的计算机可以使用其基本数据类型的不同定义。 例如,某些计算机定义 int 类型,因此其内部表示形式为 16 位,而其他计算机则使用 32 位。 一种称为“小尾号”的计算机体系结构将最小有效字节分配给最低内存地址,并将最重要的字节分配给最高地址。 另一种称为“big endian”的体系结构将最小有效字节分配给与该数据关联的最高内存地址。

远程过程调用需要严格控制参数类型。 为了通过网络处理数据传输和转换,MIDL 严格执行通过网络传输的数据的类型限制。 因此,MIDL 包含一组定义完善的 基类型。 MIDL 通过强制使用明确定义数据大小和类型的关键字来强制实施强键入。 强类型最明显的效果是 MIDL 不允许类型变量 void *

在以下主题中,本节讨论强制实施强数据键入的 MIDL 语言功能: