在这里,我在将值分配给结构的成员时遇到了问题,我使用该缓冲区通过 UART 接收一些数据。
我使用的缓冲区是一个 char 数组/缓冲区,称为 buff,大小为 35 字节,是一个全局缓冲区。缓冲区中的第 8 个字节称为 left_low,它是一个 4 字节的值。现在,据我了解C,运算符'*'是'Value At'运算符。为了从缓冲区的第 8 个字节开始复制 4 个字节,以下是我编写的代码。这个对吗?或者我需要在这里使用 memcpy() 吗?我不知道 memcpy() 在这种情况下如何工作。请帮忙!
char buff[35];
int write_function()
{
struct calibration_data dcs2_config;
dcs2_config.left_low = *(buff+1*8); //will this work?
//or should this be done? memcpy(&dcs2_config.left_low,buff+1*8,4);
return 0;
}