我对这里的基本 C 事物感到困惑。我有一个 36 字节的缓冲区。我想向该缓冲区写入 3 个数据字节,每个字节从不同的函数接收到 12 个字节。对于简单(可能效率不高)的方式,我所做的是,我采用了 3 个不同的缓冲区,每个缓冲区为 12 个字节。并使用 memcpy() 将数据写入这些缓冲区。然后我使用 strcat 函数将它们放入 35 字节缓冲区。还有其他方法吗?
int main()
{
typedef struct rtc_time_type{
int HOUR;
int MIN;
int SEC;
}RTC_TIME_Type;
RTC_TIME_Type pCurrentTime;
char mainbuff[36], buff1[12], char buff2[12], char buff3[12];
memset(mainbuff,0,36);
memset(buff1,0,12);
memset(buff1,0,12);
memset(buff1,0,12);
memcpy(buff1, /*int bytes received from some structure*/ pCuurentTime.HOUR);
memcpy(buff2, /*int bytes received from some structure*/ pCuurentTime.MIN);
memcpy(buff3, /*int bytes received from some structure*/ pCuurentTime.SEC);
strcat(mainbuff,buff1);
strcat(mainbuff,buff2);
strcat(mainbuff,buff3);
//send mainbuff on UART
UART_Tx_Buff(mainbuff);
return 0;
}