c++ - 为什么 zlibs z_stream::next_in 不是常量?

标签 c++ qt zlib

我目前正在整合来自另一个堆栈溢出问题的代码,即 uncompresses data from a QByteArray进入应用程序。

由于我们启用了所有编译器错误,我们必须重新解释 QByteArray::data() 的 const_cast 和 const_cast:

z_stream strm;
strm.next_in = reinterpret_cast<Bytef *>(const_cast<char *>(data.data()));

为什么这个输入参数是非常量的?在我看来,这表明数据以某种方式被修改,这绝对不是我想要的,也不是我认为实际发生的情况。

最佳答案

默认情况下,z_stream 接口(interface)函数不是const,大概是出于遗留原因。

您可以构建带有 const 支持的 zlib,但是通过使用 --const 运行 configure

关于c++ - 为什么 zlibs z_stream::next_in 不是常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35265568/

相关文章:

compression - Zlib deflate/inflate 适当的初始化

c++ - 将变量从 C++ 传递到 Matlab(工作区)

c++ - 如何从 C++ 中的字符指针获取 Java 字符串

python - PySide (Qt) 信号未到达我的插槽

javascript - 获取 QML LISTMODEL 中给定索引的值

android - 在 Android 应用程序上部署 Qt 时出错

ruby - 在带有 Ruby 的 Sinatra 中使用 gzip 压缩

c++ - 大量努力布局 DirectX 和窗口

c++ - stdafx.h 和 MySQL