【发布时间】:2020-10-09 21:33:37
【问题描述】:
我正在审查一个从二进制文件中读取数据的旧 cpp 程序。该代码是在 Mac OS 和 Mac OS 上编写的。作者(我无法联系到)使用 fread() 的两种变体。一个具有第二个参数指定为 sizeof(int) 和一个指定为 sizeof(unsigned)。假设 sizeof(int) == sizeof(unsinged) 使用这两种方法有什么区别吗?
fread(&intArr[0], sizeof (int), 1, datafile);
fread(&intArr[0], sizeof (unsigned), 1, datafile);
http://www.cplusplus.com/reference/cstdio/fread/
指定第二个参数是要读取的每个元素的字节大小,所以我认为它们的使用年龄不应该有任何差异(除非当然 sizeof() 不同)。这两种变体在整个文件中混合在一起(似乎是随机的),我无法确定原作者为什么会使用其中一种。我只是想确保我没有遗漏一些会影响其实现的微小细节。
【问题讨论】:
标签: c++ binary integer sizeof fread