我下面有一个代码片段,我不太清楚最后一行是做什么的.更具体地说是什么是Bytef []?
FILE* read_file_handle = fopen(read_filename, "rb");
fseek(read_file_handle, 0, SEEK_END);
size_t no_bytes_to_read = ftell(read_file_handle);
Bytef* read_buffer = new Bytef[no_bytes_to_read];
Run Code Online (Sandbox Code Playgroud)
什么是Bytef []呢?并且,如果有人知道,当将其移植到PHP时,我该怎么做?我认为它可能是一个数组,但是从未定义过这样的变量,并且使用new关键字它就没有意义了.
有人可以帮忙吗?
Hosh
编辑:好的,所以感谢用户默认它似乎是在zlib中定义的东西.它的定义是typedef Byte FAR Bytef;在上线124文件
任何人都知道Bytef的类型是根据是什么?字节已被定义为char(typedef unsigned char Byte;)和FAR已定义:#define FAR
任何帮助?
new Bytef[no_bytes_to_read]只需分配Bytef一个长度为的对象数组no_bytes_to_read.
如果您正在移植到PHP,正如您所说,您可能想要查看PHP数组.我不是PHP的专家,但现在看来,因为数组作为序映射实现的,你不能预先分配-所以是该行没有直接的翻译.
此外,为默认的链接在他的评论中指出,一个Bytef(这似乎是zlib库的一部分)是另一名的Byte,这是它本身只是一个typedef一个unsigned char.
要解决您编辑的问题 - #define FAR只需创建该符号即可.在这种情况下它什么都不做 - 预处理器简单地剥离它.因此,最终Bytef只是无符号8位字节的另一个名称.
| 归档时间: |
|
| 查看次数: |
5692 次 |
| 最近记录: |