繁体   English   中英

在 C 的另一个文件中使用 typedef 结构

[英]Use typedef struct in another file in C

您好,我是 C 的新手。

我想“导出”并在其他文件中使用 typedef 结构,但它似乎不起作用。

我有这些错误

unknown type name 'CAN_frame'
storage size of 'CAN_RxMessage' isn't known
invalid use of undefined type 'struct CAN_frame'

这是我的文件:

主文件

#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;

可以.h

#include "main.h"

可以.c

#include "can.h"
CAN_frame CAN_RxMessage;

void reception_CAN(void)
{
    //CAN_RxMessage filled with data
}

当然,我也想使用这个 CAN_RxMessage 填充我的 main.c 中的数据(将它与 usart 一起发送到我的计算机)。

我尝试在我的 can.c 和 can.h 中使用 extern、extern struct、struct 和手动定义的 CAN_frame(但我认为它只会在我的 main.c 中重载或重新定义 CAN_frame,所以它似乎没用)。

就这个。

可以.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;

可以.c

#include "can.h"

main.c

#include "can.h"
CAN_frame CAN_RxMessage;

void reception_CAN(void)
{
    //CAN_RxMessage filled with data
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM