Я новичок в C и пока не все понимаю. У меня проблемы с решением предупреждений для кода, используемого в более крупной программе. Теоретически я мог бы пропустить эти проблемы, потому что код работает, но в целевом приложении у меня есть проблема, и я думаю, что предупреждения указывают на источник проблемы (я не могу их решить).
#include <stdio.h>
#include <string.h>
#include <stdint.h>
typedef struct{
uint8_t Tx[2];
uint8_t Rx[2];
}MessageTypeDef;
MessageTypeDef Data = {
{0x11, 0x22},
{0x33, 0x44}
};
void Print_Frame( MessageTypeDef Msg[]);
int main (void)
{
Print_Frame(Data.Tx);
//Print_Frame(Data.Rx);
return 0;
}
void Print_Frame(MessageTypeDef Msg[])
{
char buffer[100] = {0};
sprintf(buffer," FRAME:%02x%02x|\r\n",(Msg->Tx[0]), (Msg->Tx[1]));
printf("TX VALUE: %s\n",buffer);
}
И сообщение об ошибке:
E:\Embedded_C\untitled\main.c: In function 'main':
E:\Embedded_C\untitled\main.c:20:17: warning: passing argument 1 of 'Print_Frame' from incompatible pointer type [-Wincompatible-pointer-types]
Print_Frame(Data.Tx);
^~~~
E:\Embedded_C\untitled\main.c:16:6: note: expected 'MessageTypeDef * {aka struct <anonymous> *}' but argument is of type 'uint8_t * {aka unsigned char *}'
void Print_Frame( MessageTypeDef Msg[]);
^~~~~~~~~~~
Есть предложения?