为什么在vulkan.h中,不可调度的对象总是被定义为64位?

看着vulkan.hi看到这个:

#if defined(__LP64__) || defined(_WIN64) || defined(__x86_64__) || ..... #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object; #else #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object; #endif 

有谁知道为什么64位? 对我来说,总是使用ifdef的第一个案例似乎更合理

在规范中,它明确指出不可分派的句柄必须是64位:

不可分派的句柄类型是64位整数类型,其含义与实现有关,并且可以直接在句柄中编码对象信息,而不是指向软件结构。 不可分派类型的对象在类型或类型中可能没有唯一的句柄值。 如果句柄值不是唯一的,那么销毁一个这样的句柄不能导致其他类型的相同句柄变得无效,并且如果创建的句柄值比已经多次创建,则不能导致相同类型的相同句柄变为无效。销毁。