基礎不牢,地動山搖,最近單片機編程又遇到一個基礎問題。
我在頭文件中定義了一個常量同時給兩個驅動文件使用,封裝的時候編譯沒問題,但是在main函數中引用驅動函數的時候就出現了重定義的問題,如下如所示。
解決方法很多,例如放棄包含頭文件,在驅動中extern常量等等。但是最規范的方法是使用C語言定義復用的規范:即在 C文件中定義,在頭文件中extern聲明,需要使用的地方引用這個頭文件。
如下圖所示:
某些頭文件內部定義了變量(比如屏幕字庫),一般只由一個C文件引用的話問題不大,懂具體編譯原理的大佬還請不吝賜教。