所以我有一个静态哈希表,在表中添加代码之前,索引与 0 进行异或运算。如果表的索引已经声明为整数,为什么会出现这种情况?
h = 0;
h ^= (i << LZW_HASH_SHIFT);
if (h >= LZW_HASH_SIZE)
{
h -= LZW_HASH_SIZE;
}
s->tab[h].code = i;
s->tab[h].suffix = i;
s->tab[h].hash_prefix = LZW_PREFIX_EMPTY;
此源代码是 FFmpeg LZW 编码器库的一部分。
最佳答案
在原始代码中,hash
函数是从代码中的其他地方调用的,并且在特殊情况下复制一个函数只是为了避免该行不执行任何操作是没有意义的。因此,当从 clearTable
调用时,它什么也不做。 (浪费的时间可以忽略不计),但是当使用不为零的参数调用时会做一些明智的事情。
在你的情况下,唯一的目的是展示盲目复制粘贴是多么糟糕,我想:)
关于ffmpeg - 与 0 异或的目的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38630278/