我正在从 ARM micro 中的 SD 卡读取值:
Res = f_read(&fil, (void*)buf, 6, &NumBytesRead);
其中fil
是指针,buf
是存储数据的缓冲区。
这就是问题所在:它是一个数组,但我想将该数组的内容放在一个变量中。
举个实际例子:从文件中读出的6个字节是:
buf[0] = 0x1B
buf[1] = 0x26
buf[2] = 0xB3
buf[3] = 0x54
buf[4] = 0xA1
buf[5] = 0xCF
我希望:uint64_t 数据
等于0x1B26B354A1CF
。也就是说,数组的所有元素“连接”在一个 64 位整数中。
最佳答案
如果没有类型双关,你可以像下面那样做。
uint64_t data = 0;
for (int i=0; i<6; i++)
{
data <<= 8;
data |= (uint64_t) buf[i];
}
关于c - 如何将数组的值设置为单个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56616473/