【发布时间】:2022-01-30 00:09:17
【问题描述】:
在以“迂腐”的方式使用 zlib 时,我偶然发现了一些不一致的地方,我想自己澄清一下。
对于inflateInit(),手册指出:
...字段
next_in、avail_in、zalloc、zfree和opaque必须在调用者之前初始化。
在下一段中:
...所以
next_in、avail_in、next_out和avail_out未使用且未更改。
换句话说,手册要求在调用inflateInit()之前初始化next_in和avail_in,但同时,它声明它们无论如何都不会被使用。这是为什么?就我而言,我试图让它们都未初始化并初始化为零,直到在调用deflate() 之前进行真正的准备工作。但严格来说,这违反了手册,除非“必须初始化”意味着我可以将它们初始化为零。但那又何必呢?
注意deflateInit()没有这样的要求:
...字段
zalloc、zfree和opaque必须在调用者之前初始化。
为什么不对称?
【问题讨论】:
标签: compression zlib deflate