熱門(mén): 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂(lè)園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
mcucludet 發(fā)表于 2020-4-30 16:41 已經(jīng)解決了,只要?jiǎng)e在C文件直接調(diào)用別的C文件,只調(diào)用那些C文件對(duì)應(yīng)的頭文件就行,就不會(huì)出現(xiàn)重復(fù)定義問(wèn)題了 ![]() |
要學(xué)會(huì)使用 #ifdef 這些條件預(yù)編譯 |
黃youhui 發(fā)表于 2020-4-30 15:36 好的,萬(wàn)分感謝 |
嘿嘿嘿a 發(fā)表于 2020-4-30 16:10 別全一股腦加上,必須有一個(gè)確切。其他文件需要。不然大家都找其他文件最后都找不到。樓主可以看下該詞解釋。 |
piliming 發(fā)表于 2020-4-30 15:33 我試了不行的 |
每個(gè)C文件的函數(shù),加extern |
重復(fù)定義可以是函數(shù)名重復(fù)定義,變量重復(fù)定義。避重定義的方法: 1不要在.h文件里面定義全局變量,在,c文件的全局變量要和局內(nèi)變用不同方式命名,比如全局變用下劃線開(kāi)頭 2宏定義盡量放在.c文件,如果要在.h文件里存放宏定義最好在加上附屬名字,比如 #define LCD_RST_PORT GPIOB #define IIC_1_SDA_PORT GPIOC #define SPI1_SDA_PORT GPIOA IIC和SPI都有SDA 和SCK引腳并且很多單片機(jī)不止一個(gè)SPI和IIC(模擬IIC硬件IIC) 如果在在.h文件宏定義不加附屬名字就很容易重復(fù)定義 3.在h文件里面不要隨便包含.h文件,如果要調(diào)用就在.c文件里面加,我以前被這個(gè)害慘了 4.函數(shù)名重復(fù)定義,這個(gè)在相同的函數(shù)名后面加_1 _2既可以阻止命名想通了 5慎用extern關(guān)鍵字,別隨意將其他文件的變量引進(jìn) 這只是我所知道的,可能并不完全,希望能幫到你 |
Powered by 單片機(jī)教程網(wǎng)