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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4040|回復: 7
打印 上一主題 下一主題
收起左側

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

[復制鏈接]
跳轉到指定樓層
樓主
2黑幣

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

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

最佳答案

查看完整內容

重復定義可以是函數名重復定義,變量重復定義。避重定義的方法: 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) ...
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:592807 發表于 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關鍵字,別隨意將其他文件的變量引進

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

使用道具 舉報

板凳
ID:741674 發表于 2020-4-30 15:33 | 只看該作者
每個C文件的函數,加extern
回復

使用道具 舉報

地板
ID:711376 發表于 2020-4-30 16:10 | 只看該作者
piliming 發表于 2020-4-30 15:33
每個C文件的函數,加extern

我試了不行的
回復

使用道具 舉報

5#
ID:700854 發表于 2020-4-30 16:41 | 只看該作者

別全一股腦加上,必須有一個確切。其他文件需要。不然大家都找其他文件最后都找不到。樓主可以看下該詞解釋。
回復

使用道具 舉報

6#
ID:711376 發表于 2020-4-30 17:08 | 只看該作者
黃youhui 發表于 2020-4-30 15:36
重復定義可以是函數名重復定義,變量重復定義。避重定義的方法:

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

好的,萬分感謝
回復

使用道具 舉報

7#
ID:462827 發表于 2020-4-30 18:33 | 只看該作者
要學會使用 #ifdef 這些條件預編譯
回復

使用道具 舉報

8#
ID:711376 發表于 2020-5-3 19:13 | 只看該作者
mcucludet 發表于 2020-4-30 16:41
別全一股腦加上,必須有一個確切。其他文件需要。不然大家都找其他文件最后都找不到。樓主可以看下該詞解 ...

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

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表