![]() |
發布時間: 2019-7-25 10:49
正文摘要:不加#include "oledfont.h"為第一張 加了之后就是第二張,提示我在oledfont.h中定義的那幾個字模數組在main和oled重定義 有大佬知道怎么回事嘛? 一個include怎么會有定義呢? 感謝感謝 |
你定義頭文件的時候參照#ifndef的方式可以避免重復定義 |
應該是頭文件沒有添加條件編譯吧,導致重復編譯了 |
aaaaaa。 發表于 2019-7-28 19:42 已經改正,就是你說的這個原因,謝謝 |
因為在“oledfont.h”中定義了許多數組,“oled.c”文件中采用#include “oledfont.h”,調用“oledfont.h”中的數組;在主函數"main.c"中也采用#include “oledfont.h”,調用“oledfont.h”中的變量,就會導致“oledfont.h”中的變量被重復定義。 就像你做的那樣不需要再主函數里再加上#include “oledfont.h”,問題就解決了 |
不加oledfont.h也能夠正常顯示,但是我就是想知道為什么不能添加 |
cjm82 發表于 2019-7-25 21:55 沒有啊,字模全在oledfont,h里面定義了 |
yzwzfyz 發表于 2019-7-25 12:10 oledfont.h里面只有定義的字碼,有什么錯誤呢? |
小黑屋525 發表于 2019-7-25 13:41 添加了,和oled.h在一個文件夾里面 |
你看下OLED.H里面有沒有對字模數組進行重定義 |
加#include ../"oledfont.h試試 |
路徑添加了沒有? |
知道【#include】是什么意思嗎? 你在讓系統編譯一個有錯的東西了。 |