这是 MFC 的 CMap 类中的默认 HashKey 函数。
AFX_INLINE UINT AFXAPI HashKey(ARG_KEY key)
{
// default identity hash - works for most primitive values
return ((UINT)(void*)(DWORD)key) >> 4;
}
我的问题是为什么需要类型转换(DWORD)和(void*)?我猜(DWORD)可能与16位机器的兼容性事务有一些关系。但我对void*感到困惑。