頭文件的使用出現的情況

         今天做LCD屏幕顯示漢字的demo程序,需要調用字庫文件,爲了簡便起見,把字庫文件中的字符按照一定的數據格式保存到一個數據結構中,大約存了10個漢字,出現這個問題:字符重複定義的錯誤。把漢字的數據放到一個數組中,保存在頭文件中,在此頭文件中使用了類似#ifndef ### #endif這樣的語句,當有多個語句包含的時候出現重複定義的錯誤,通過從網上搜索相應的問題發現,變量的定義一般在源文件中(cpp,c文件中),而變量的聲明一般存在頭文件中(h文件中)。

實例如:頭文件A中包含變量定義的情況,如果一個源文件B包含頭文件A時,可以正常調用,當有其他源文件C也調用頭文件A時,會出現重複定義的錯誤。

常用的用法就是定義在源文件中,聲明在頭文件中。

具體的討論在

發現的錯誤過程是在msp430單片機程序開發過程,附IAR常見的錯誤:附錄出處

【記住】接口別忘設置!

1、設置IAR軟件Tab鍵縮進字符個數
方法:Tools-Options-Editor-Tab Size,按習慣改後面數字.

2、Error[e46]: Undefined external "LcdInit" referred in main( E:\MSP430
\UDP\Debug\Obj\main.r43 )
原因:工程中有多個.c文件,但不在工程中.
解決:把.c文件加到工程裏。

3、Error[e27]: Entry "ReadingData" in module DS1302 ( E:\MSP430
\Module\DS1302\Debug\Obj\DS1302.r43 ) redefined in module main
原因:我把定義的數組unsigned char ReadingData[7];放在.h的文件中編譯出現
這樣的錯誤
解決:把unsigned char ReadingData[7];放在.c文件中

4、An error has occured.See the log file C\...\workspace_v5_1\.metadata\.log
解決:安裝目錄CCS5.1\CCS5.1.1.00031_win32\baserepo下的vcredist_x86_2005

5、Error[Pe127]: expected a statement E:\MSP430\Module\TFT\SD.c 95
Error[Pe018]: expected a ")" E:\MSP430\Module\TFT\SD.c 132
解決:仔細檢查下程序,看有沒有一些語法上的錯誤。比如:
#define SPI_DO_H P1OUT |= BIT0; //P1.0
#define SPI_DO_L P1OUT &= ~BIT0;
多加的“;”就會使程序出現上述錯誤。

6、The target setup(MSP430G2xx3) does not match the actual target tpe
(MSP430G2xx2)
解決:檢查目標板上芯片型與CCS工程設置芯片型是否一致。大部分是匹配不一致的
問題。

7、Warning[Pa093]:implicit conversion from floating point to integer。
解決:使用強制轉換語句,把float數據轉化成integer類型數據。這樣防止數據出錯。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章