从文件中读取字节数组的数据

Reading data for a byte array from a file

本文关键字:数组 数据 字节数 字节 文件 读取      更新时间:2023-10-16

我正在研究一个函数,现在有3个参数。其中一个参数是以字节为单位的输入数组的长度。它是一个int型,所以如果length = 4,那么它说输入数组的长度是4字节(输入和输出数组是另外两个参数)。如果length不是4的倍数,我们需要用0填充它,直到它是4的倍数。我的TA告诉我,我应该从文件中读取长度,并将其存储在字节数组中,然后告诉我,我应该用0x00填充它,直到它是4的倍数。这就引出了我的问题:

1)如何声明字节数组?
2)用零填充它就像包含[…]一样简单吗?, 0x00, 0x00, 0x00]作为数组中的元素?

如何声明字节数组?

uint8_t数组(大小),

填充数组

for (unsigned int i = 0; i < padding_size; ++i)
{
  array[i] = 0;
}

另一种技术是将数组设置为pad值,然后用值替换必要的槽:

std::fill(&array[0], &array[size], 0);
array[3] = value;

如果性能受限,您可能希望展开循环并执行多个赋值:

array[0] = 0;
array[1] = 0x0; // Same as 0.
array[2] = 0;
array[3] = value;

大多数计算机更喜欢处理数据指令。跳转或分支往往会激怒他们,因为他们需要花时间评估分支或跳转。