Использовать структуру typedef в другом файле на C
Привет, я новичок в C.
Я хочу «экспортировать» и использовать структуру typedef в других файлах, но мне кажется, что она мало работает.
У меня такие ошибки
unknown type name 'CAN_frame'
storage size of 'CAN_RxMessage' isn't known
invalid use of undefined type 'struct CAN_frame'
Вот мои файлы:
main.h
#include "can.h"
typedef struct
{
uint16_t STDID; //ID
uint8_t IDE;
uint8_t RTR; //Request frame ou data frame
uint8_t DLC; //Nombre d'octets de données utiles
uint8_t data[8]; //Tableau de 8 octets de données
}CAN_frame;
can.h
#include "main.h"
can.c
#include "can.h"
CAN_frame CAN_RxMessage;
void reception_CAN(void)
{
//CAN_RxMessage filled with data
}
Конечно, я также хочу использовать это CAN_RxMessage, заполненное данными в моем main.c (чтобы отправить его вместе с usart на мой компьютер).
Я попытался использовать extern, extern struct, struct и вручную определенные CAN_frame в моих can.c и can.h (но я думаю, что это будет только перегрузить или переопределить CAN_frame в моем main.c, поэтому это кажется бесполезным).
1 ответ
Вот.
can.h
typedef struct _CAN_frame
{
uint16_t STDID; //ID
uint8_t IDE;
uint8_t RTR; //Request frame ou data frame
uint8_t DLC; //Nombre d'octets de données utiles
uint8_t data[8]; //Tableau de 8 octets de données
}CAN_frame;
can.c
#include "can.h"
main.c
#include "can.h"
CAN_frame CAN_RxMessage;
void reception_CAN(void)
{
//CAN_RxMessage filled with data
}