ここで基本的なCのことについて混乱しています。36バイトのバッファがあります。そして、そのバッファに 3 つのデータ バイトを書き込みたいと思います。それぞれの 12 バイトは、さまざまな関数から受信されます。簡単な (効率的ではないかもしれない) 方法として、私が行ったことは、それぞれ 12 バイトの 3 つの異なるバッファーを取得したことです。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;
}