arrays - CS50- Lab4- Volume- For Loop Vs Array for header copy
问题描述
我已使用以下代码成功编译了 volume.c,以将标头从输入文件复制到输出文件。但是,我已经看到 uint8_t header[HEADER_SIZE] 通常用于我稍后检查的解决方案中。
我的版本
// TODO: Copy header from input file to output file
uint8_t headers;
for (int i = 0; i < HEADER_SIZE; i ++)
{
fread(&headers, sizeof(uint8_t), 1, input);
fwrite(&headers, sizeof(uint8_t), 1, output);
}
典型解决方案
// TODO: Copy header from input file to output file
uint8_t header[HEADER_SIZE];
fread(&header, sizeof(header), 1, input);
fwrite(&header, sizeof(header), 1, output);
除了稍微增加运行时间之外,我的方法还有哪些其他缺点?
解决方案
如果我没记错的话,稍微增加运行时间是一种轻描淡写的说法,它会大大增加运行时间,因为它会循环每个标题并使其阅读起来更加复杂。而典型的解决方案效率更高,并将其存储到数组中,使其更易于访问和阅读。
推荐阅读
- apache-spark - spark streaming kafka:为主题分区获取数据时出现未知错误
- r - 使用 dplyr 应用函数后,将输出作为列而不是列表返回
- javascript - 使用自定义组件反应树视图
- android - 从开始时间起 6 小时后自动停止定位服务
- asp.net - C# MemoryCache 是否持续存在于 IIS 应用程序池空闲超时
- c# - 为什么 POST 使用 Webrequest 总是失败但使用 html 表单是成功的?
- spreadsheet - Google电子表格条件格式行取决于当前工作表和另一张工作表上的日期
- c++ - OpenCV C++ 在彩色图像中组合灰度图像
- php - 如果可能的话,如何将仪表板按钮移动到网站菜单
- javascript - 服务器端 DataTable JS clear() 不工作