IAR編譯duplicate definitions for IAR報錯解決辦法補充版

在編譯文件定義全局變量的時候,編譯出現錯誤,經查是在另一個.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()

{

 

}

發佈了149 篇原創文章 · 獲贊 6 · 訪問量 31萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章