[英]Zlib deflate/inflate proper initialization
在以“迂腐”的方式使用 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
必須由調用方初始化。
為什么不對稱?
有人認為inflateInit()
可以利用 header 中的信息進行初始化。 所以接口要求是`next_in
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.