对象类型会生成到 C 结构中,并在对象的规范文件中带有它们自己的类型定义。类型定义引入了代表对象的 struct 的类型别名。类型名称由对象类型的名称组成,没有任何后缀。例如,以下结构和类型定义是为对象类型 B 生成的:
typedef struct B B;
struct B {
/* data members of B */
};
/* operations of B */
由于 B 是显式类型,其他对象可以根据 B 来进行定义。规范文件和实施文件都是为对象类型而生成的。创建、初始化、清除和销毁操作都是为对象类型手动生成的。
类型 B 是在拥有 B 的程序包的规范文件中声明的,但在类型 B 的对象进行实例化之前,不会为 B 分配内存。
对象类型可以在系统初始化时静态地实例化,也可以在执行的过程中动态地实例化(缺省为动态)。因此,对象类型的实例的生命周期范围可能与系统不同。有关更多信息,请参阅动态内存分配。