IAR 提示 Error[Li005]: no definition for ...的错误 的问题的解决方法

最近在从AVR向stm32 移植一个程序,自己愚笨,基本功不够扎实,遇到不少问题。结构体的定义和声明的方法,经过在网上学习,大神说应该在.h中定义结构体类型,然后声明,这样就在外部.c中包含这个.h就可以使用了。可是我如此操作后,还是提示 no definition。搜索资料无效,后来过思考,测试,是由于下面的原因,其实很简单,只是自己没有理清思路。

比如,在uart.h中定义了一个结构体类型

struct SERIREC{
unsigned char flag;
unsigned char Crc8_Code;
unsigned Crc16_Code;
unsigned char usedmes[7];
unsigned char i;
}; 


extern struct SERIREC PC  ; //然后再这里声明它

在uart.c中定义PC这个结构体的实体。


struct SERIREC PC ; // 不定义这个,就会报 no definition


这时候就可以在其他.c文件中直接把uart.h这个头文件包含进去,然后直接使用结构体 PC了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值