IAR编译duplicate definitions for IAR报错解决办法补充版

本文介绍了在C语言中正确地定义和引用全局变量的方法。强调了在不同源文件间使用全局变量时,如何避免重复定义及赋值的问题,并给出了正确的extern声明示例。

在编译文件定义全局变量的时候,编译出现错误,经查是在另一个.c文件里面把我这个声明的变量又重新给赋值了一次,这个是不对的,如果你想定义全局变量的话,或者向调用其他.c文件里面的定义的全局变量的话,那么你在引用的.c文件里面加上extern char num;类似的语句就可以,不能重新给这个变量在定义的时候赋值。

/-------------------------------------------------main.c 声明-------------------------------------------------------------------------------------------

#iniclude “…”

unsigned char Buffer[1000];    //定义了一个1000字节的接收发送缓冲区
unsigned char host_mac_addr[6]=    { 0x00, 0x1e, 0xc9, 0x45, 0x61, 0x9e };
unsigned char mac_addr[6] =     {0x08,0x90,0x90,0x90,0x90,0x90 };//{ 0x52, 0x54, 0x4c, 0x38, 0xf7, 0x42 };
unsigned char ip_addr[4] =         { 192, 168, 0, 21  };

unsigned char host_ip_addr[4] = { 192, 168, 0, 100 };
unsigned int packet_len;            //接收、发送数据包的长度,以字节为单位

int main()

{

 

return 0;

}

/------------------------------------在get.c调用---------------------------------------------------------------------------------------------------------

#iniclude “…”

extern  unsigned char Buffer[1000];    //定义了一个1000字节的接收发送缓冲区
extern  unsigned char host_mac_addr[6];
extern  unsigned char mac_addr[6] ;
extern  unsigned char ip_addr[4] ;

extern  unsigned char host_ip_addr[4] ;
extern  unsigned int packet_len;            //接收、发送数据包的长度,以字节为单位

void get()

{

 

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值