ffmpeg - 与 0 异或的目的?

标签 ffmpeg xor lzw

所以我有一个静态哈希表,在表中添加代码之前,索引与 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/

相关文章:

java - 位打包 LZW 短语编号

algorithm - 理解LZW解压算法的一个例子

jquery - 如何在没有客户端的情况下运行 HTML5/JS 代码?

python - 如何使用 Python 在二进制状态下编辑视频元数据

ios - 如何使用 Swift 从 iOS 访问/流式传输 IP 摄像机(RTSP、ONVIF)

python - 在 python 中对二进制文件进行异或

c++ - FFmpeg:编码 PCM 16 音频数据分配错误

c++ - XOR 在 C++ 管理的调试和安装版本之间表现不一致

c++ - 如何构建从叶子到根的二叉树

c++ - LZW压缩生成文件比原来大