|
| uchar宏定義錯誤 |
| 沒有定義,應該這樣定義uchar #define uchar unsigned char ,同理uint也這樣定義使用 |
| 宏定義有問題,應該是#define uchar unsigned char,這樣uchar readkey就相當于unsigned char readkey,定義的是一個無符號字符類型,但是你的宏定義是#define uchar unsigned char THO TLO TH1 TLI,這樣uchar readkey就相當于unsigned char THO TLO TH1 TLI readkey,此時定義方式有問題,報錯 |
|
#define uchar unsigned char TH0 TL0 TH1 TL1 改成 #define uchar unsigned char |
|
本帖最后由 瘋子本人 于 2020-5-4 22:38 編輯 把那幾行注釋一下,看一下是否是中文輸入,前面的uchar沒定義好 |
| 很可能是中文的分號,一模一樣的。 |
| 宏定義就是把uchar后面的都定義過來了 |
| 第二行宏定義是什么 把char后面的都去掉 |
|
宏定義出錯了 因為你的宏定義是#define uchar unsigned char TH0 TH1 TH2 TL0 TL1 所以當你定義uchar radkey;時等價于(unsigned char TH0 TH1 TH2 TL0 TL1) readkey; |
|
你的代碼亂拷貝來的吧,關注點不對了,你沒看到報錯信息說頭文件打不開么,你的電腦中可能沒有那樣的頭文件,試一下 reg52.h 也好呀。 第二行的宏定義也錯了,后面跟了太長的尾巴。 第一行第二行就已是錯的,可你卻什么不知道。 |
|
第二行宏定義和變量聲明怎么一行寫了? 另外看編譯是沒找到at89x51.h 這個頭文件聲明了特殊寄存器TH0,TL0,TH1,TL1。不需要你第二行的重復聲明。 有了頭文件,刪掉第二行,第二個錯誤就不存在了。 |
|
#define uchar unsigned char TH0 TL0 TH1 TL1 這里是幾個意思 |
| 把第1個錯誤改正后也許就沒有了,頭文件改為regx52.h |
| 第十一行的x和temp之間是不是少個下劃線。 |