欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 當C文件中含有多種類似圖中的.C和.h文件時,需要怎么做可以避免類似重復定義的問題? [打印本頁]

作者: 嘿嘿嘿a    時間: 2020-4-30 14:53
標題: 當C文件中含有多種類似圖中的.C和.h文件時,需要怎么做可以避免類似重復定義的問題?

WULPM~3VKDU3I}_64~_KK%F.png (208.94 KB, 下載次數: 64)

WULPM~3VKDU3I}_64~_KK%F.png

作者: 黃youhui    時間: 2020-4-30 14:53
重復定義可以是函數名重復定義,變量重復定義。避重定義的方法:

1不要在.h文件里面定義全局變量,在,c文件的全局變量要和局內變用不同方式命名,比如全局變用下劃線開頭
2宏定義盡量放在.c文件,如果要在.h文件里存放宏定義最好在加上附屬名字,比如
#define LCD_RST_PORT GPIOB
#define IIC_1_SDA_PORT GPIOC
#define SPI1_SDA_PORT GPIOA
IIC和SPI都有SDA 和SCK引腳并且很多單片機不止一個SPI和IIC(模擬IIC硬件IIC)
如果在在.h文件宏定義不加附屬名字就很容易重復定義
3.在h文件里面不要隨便包含.h文件,如果要調用就在.c文件里面加,我以前被這個害慘了
4.函數名重復定義,這個在相同的函數名后面加_1 _2既可以阻止命名想通了
5慎用extern關鍵字,別隨意將其他文件的變量引進

這只是我所知道的,可能并不完全,希望能幫到你

作者: piliming    時間: 2020-4-30 15:33
每個C文件的函數,加extern
作者: 嘿嘿嘿a    時間: 2020-4-30 16:10
piliming 發表于 2020-4-30 15:33
每個C文件的函數,加extern

我試了不行的
作者: mcucludet    時間: 2020-4-30 16:41
嘿嘿嘿a 發表于 2020-4-30 16:10
我試了不行的

別全一股腦加上,必須有一個確切。其他文件需要。不然大家都找其他文件最后都找不到。樓主可以看下該詞解釋。
作者: 嘿嘿嘿a    時間: 2020-4-30 17:08
黃youhui 發表于 2020-4-30 15:36
重復定義可以是函數名重復定義,變量重復定義。避重定義的方法:

1不要在.h文件里面定義全局變量,在,c文 ...

好的,萬分感謝
作者: hantu    時間: 2020-4-30 18:33
要學會使用 #ifdef 這些條件預編譯
作者: 嘿嘿嘿a    時間: 2020-5-3 19:13
mcucludet 發表于 2020-4-30 16:41
別全一股腦加上,必須有一個確切。其他文件需要。不然大家都找其他文件最后都找不到。樓主可以看下該詞解 ...

已經解決了,只要別在C文件直接調用別的C文件,只調用那些C文件對應的頭文件就行,就不會出現重復定義問題了




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1