gpt4 book ai didi

c++ - C++ 中的 new Bytef[int] 是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:05:07 25 4
gpt4 key购买 nike

下面有一个代码片段,我不太确定最后一行是做什么的。更具体地说,什么是 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];

Bytef[] 是做什么的?而且,如果有人知道,在将其移植到 PHP 时,我该怎么做?我认为它可能是一个数组,但从未定义过这样的变量,而且使用 new 关键字也没有意义。

有人能帮忙吗?

编辑:好的,多亏了用户 Default,它似乎是在 zlib 中定义的东西。在 this file on line 124 中定义为 typedef Byte FAR Bytef;任何人都知道 Bytef 的类型是什么?字节已定义为 char (typedef unsigned char Byte;) 且 FAR 已定义:#define FAR有帮助吗?

最佳答案

new Bytef[no_bytes_to_read] 只是分配一个长度为 no_bytes_to_readBytef 对象数组。

如果您要移植到 PHP,如您所说,您可能需要查看 PHP arrays .我不是 PHP 专家,但似乎因为数组是作为有序映射实现的,所以您无法预分配 - 所以 没有直接翻译该行。

此外,正如 Default 在其评论中的链接中指出的那样,Bytef(似乎是 zlib 库的一部分)只是 Byte 的另一个名称>,即 itself just a typedef对于 unsigned char

要解决您编辑的问题 - #define FAR 只需创建该符号。在这种情况下它什么都不做——预处理器只是简单地剥离它。所以最终 Bytef 只是无符号 8 位字节的另一个名称。

关于c++ - C++ 中的 new Bytef[int] 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7706241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com