Hello, I'm new to C.
I want to "export" and use a typedef struct in other files but it seems that it doesn't works a lot.
I have those kind of errors
unknown type name 'CAN_frame'
storage size of 'CAN_RxMessage' isn't known
invalid use of undefined type 'struct CAN_frame'
Here are my files:
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
}
Of course I also want to use this CAN_RxMessage filled with data in my main.c (to send it with the usart to my computer).
I tried to use extern, extern struct, struct and manualy defined CAN_frame in my can.c and can.h(but I think it will only overload or redefine CAN_frame in my main.c so it seems useless).
main.hincludescan.handcan.hincludesmain.h. Recall that inclusion basically dumps file content in place (as text). How is the circular inclusion supposed to work?can.hincludesmain.h, andmain.hincludescan.h. The pre-processor will probably produce an error about an infinite-loop of include files.