XOR与0的目的?

时间:2016-07-28 07:54:17

标签: ffmpeg xor lzw

所以我有一个静态哈希表,在表中添加代码之前,索引与XOR-ed为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编码器库的一部分。

1 个答案:

答案 0 :(得分:1)

在原始代码中,hash函数是从代码中的其他位置调用的,复制函数只是为了避免在该行什么也不做的情况下在特殊情况下使用一行。因此,当从clearTable调用时(它浪费的时间可以忽略不计)它什么都不做,但是当使用非零参数调用时,它会做一些合理的事情。

在你的情况下,我的唯一目的是展示盲目的复制粘贴是多么糟糕,我想:)