我有一组由 uint16_t 唯一标识的结构。这些结构永远不会超过 256 个(由于我不会进入的原因,必须使用 uint16_t 来识别结构)。
我想通过指针数组存储这些结构。由于不会有超过 256 个结构,我想静态分配一个大小为 256 的结构指针数组。不过,为此,我需要一个函数来将 uint16_t 唯一地映射到 uint8_t。
鉴于我将在运行时知道所有键(尽管在运行前我不会知道),是否存在一种算法,它通常会给我一个唯一的映射(即完美的哈希)?
需要注意的是,我使用的系统有 16 位地址。因此,出于效率原因,我不想使用任何大于 uint16_t 的类型。