Solaris 动态跟踪指南

通用指针

有时在 D 程序中,在不指定指针引用的数据类型的情况下表示或处理通用指针地址会很有用。可使用类型 void *(其中关键字 void 表示缺少特定信息)或使用内置类型别名 uintptr_t(它表示对应当前数据模型中某个指针的大小的无符号整数类型别名)来指定通用指针。不能对 void * 类型的对象应用指针运算,并且只有在先将这些指针的类型强制转换为另一类型之后才能取消对它们的引用。在需要对指针值执行整数运算时,可将指针强制转换为 uintptr_t 类型。

可在需要指向另一数据类型的指针的任何上下文(如关联数组元组表达式或赋值语句的右侧)中使用指向 void 的指针。同样,可在需要指向 void 的指针的上下文中使用指向任何数据类型的指针。要用指向非 void 类型的指针来代替另一非 void 指针类型,需要使用显式强制类型转换。必须始终使用显式强制类型转换将指针转换为整数类型(如 uintptr_t),或者将这些整数转换回相应的指针类型。