在“严谨”地使用zlib时,我遇到了一些不一致之处,我想对此进行澄清。手册中对于
“...在调用
然而在下一段中:
“... 因此,
换句话说,手册要求在调用
请注意,对于
“...在调用
为什么会存在这种不对称性呢?
inflateInit()
的说明如下:“...在调用
inflateInit()
之前,必须由调用方初始化next_in
、avail_in
、zalloc
、zfree
和opaque
字段。”然而在下一段中:
“... 因此,
next_in
、avail_in
、next_out
和avail_out
都未使用,且不变。”换句话说,手册要求在调用
inflateInit()
之前初始化next_in
和avail_in
,但同时又声明它们不会被使用。为什么呢?在我的情况下,我尝试将它们都保持未初始化或初始化为零,直到在调用deflate()
之前进行真正的准备工作时也没有出现问题。但严格来讲,这违反了手册要求,“必须初始化”是否意味着我可以将它们初始化为零呢?那还有何必呢?请注意,对于
deflateInit()
没有这样的要求:“...在调用
deflateInit()
之前,必须由调用方初始化zalloc
、zfree
和opaque
字段。”为什么会存在这种不对称性呢?
deflateInit()
步骤。 - neoxic