① 一個KEIL編譯的C 錯誤
void Delay(uint m)
缺分號。改為
void Delay(uint);
② keil編譯C程序時出現了這樣的錯誤,不知道怎麼解決(高分懸賞)
可能是哪個文件里出現了不小心敲鬧孫入的 「非法內容」
解決方法:
1.建議使用高版本的編譯器,因為高版本編譯器會提供較准確薯彎肢的提示信息
2.仔細的逐個檢查頭文件數世中是否有「非法內容」,沒解決進行下一步
3.重建新的工程,逐一加入原有文件(不知你的H文件是怎麼組織的,我的這樣做比較方便)
以後注意備份
③ keil一個工程文件下可以放多個.c文件嗎但是編譯時會出現錯誤,怎麼解決
當然可以,但你需要有配套的.h文件讓C文件之間可以互相調用。
例如有1.c和2.c兩個文件,純耐1.c中有做中春個全局變數a,有個函數void
b(void),那麼就培李有1.h這么寫
extern
char
a;
void
b(void);
這樣的話,如果2.c想使用a或函數b的話,在2.c的開頭加一句#include
"1.h"就能用了。
④ 單片機C語言 keil編譯這些錯誤怎麼改
前面定義的全局變數數組wenzi[]最後應該是分號,而不是逗號。
延時子程序中用了庫函數_nop_();必須用#include包含頭文件intrins.h。因為沒加頭文件,_nop_()是不識別的,才引起變數p錯誤。
兩個延時子程序前面要加void,否則編譯時會警告。
主程序中還有幾處錯誤,修改如下圖
⑤ keil編譯中出現錯誤怎麼辦
1、打開軟體project-new project創建一個工程,並為其選擇一個存放目錄。
2、對工程進行一些配置(project-options for target 『target 1』)在output選項下的「create HEX file」前打上對號,工程編譯之後能夠輸出一個可以下載的「HEX」文件。
3、為工程添加.C,.h文件,右鍵單擊「source group 1」,應該就可以了。
⑥ 新手用keil4 編譯c文件出現錯誤,求大神解釋
#define leftmotostop {IN14=0,IN15=0,IN16=0,IN17=0;}
這句話中,大括弧沖寬中的部分作為一個整體,它的返回值應該是最後一個表達式的拆判睜值,即:IN17=0的返回值旅歲,而賦值表達式返回的是左值。
也就是說if(leftmotostop)這個判斷語句,永遠是0值。
也許keil編譯器對大括弧及逗號表達式支持的不好,即便能通過編譯,你這句代碼也會有邏輯問題。
⑦ 單片機c語言用keil編譯時出現如下的錯誤是什麼原因'=':illegal type conversion from/to 'void',急求
Write_24C02 ();
下方錯誤提示顯示的是,這個函數返回類型是 void 也就是沒有設定返回值,所以使用 = 等號 就產生了語法錯誤。
⑧ 在keil中一個工程里調用兩個c程序 為何一直顯示錯誤 下面兩個程序直接幫我調好就行 初學者莫笑話
你是把這兩個主程序同時放入一個工程中了吧,這是不行的,必須建兩個工程,分別載入一個主答仿程序才行的。如果把兩個程序放入一個工程中,就只能有一個清滑纖主函數main(),而讓拆另一個寫成子函數,由主函數來調用的。
就兩個程序,各自編譯是沒有問題的,問題就是你把兩個主程序放在一個工程中了。
⑨ keil的編譯錯誤:error c129:missing';'before'0000'
你的錯誤代碼是 error c129: 這是一個C語言方面的語法錯誤,說明你的文件被保存為C文件(文件名為.c後綴)。
我用你這段程序放在keil編譯器中試驗過,當程序保存為c文件並編譯時,會出現如你所示的error c129的錯誤且指向程序的第一句代碼處;若將文件另存為匯編文件(文件名為.asm後綴)再進行編譯,則不會出現c129的報錯。
現在將這段程序保存為.asm文件,並將程序整理為以下形式:
ORG0000H
LJMPSTART
ORG000BH;
LJMPINTT0;
START:MOVR0,#70H
MOVR7,#0CH
INIT:MOV@R0,#00H
INCR0
DJNZR7,INIT
MOV72H,#10
MOV75H,#10
MOVTMOD,#01H
MOVTL0,#0B0H
MOVTH0,#03CH
SETBEA
SETBET0
SETBTR0
START1:LCALLSCAN
LCALLKEYSCAN
SJMPSTART1;
DL1MS:MOVR6,#14H
DL1:MOVR7,#19H
DL2:DJNZR7,DL2
DJNZR6,DL1
RET;
DL20MS:
對於以上程序段,不知道整理出來之後是否與你的原代碼相同,但其中有一點需要說明,匯編文件中的分號「 ; 」 的作用與C文件中的「// 」作用類似,它後面緊跟的是注釋內容。 你這段程序,若按以上整理,那麼所有命令後面的分號「; 」 都可以不要的。 不過,也有可能你確實使用了分號的作用,將後面一些命令作了屏蔽處理,則此處不另作說明。
下面將整理後的程序進行編譯,會出現以下報錯情況:
錯誤、警告的解釋:
第4行的錯誤原因是:標志符號「INTT0」沒有定義;
第18行的錯誤原因是:標志符號「SCAN」沒有定義;
第19行的錯誤原因是:標志符號「KEYSCAN」沒有定義;
第27行的警告原因是:代碼結束處沒有「END」命令;(註:所有匯編文件結尾處都應有一句「END」命令表示結束)
可以看得出,你這段程序應該不是完整的,另有一部份你沒有復制出來。你可以根據以上說明,再結合你的實際情況處理你的程序。 祝你成功!