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

时间:2016-10-04 18:35:18

标签: c++ arrays byte

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

1)如何声明字节数组?
2)用零填充它就像在数组中包含[...,0x00,0x00,0x00]那样容易吗?

1 个答案:

答案 0 :(得分:0)

  

如何声明字节数组?

uint8_t array [size];

  

填充数组

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;

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