![]() |
發布時間: 2020-2-1 09:13
正文摘要:倒數第三行的u8(儲存鍵值的) KeyValue 它儲存鍵值不用定義嗎? 為什么這個語句可以這樣寫。 下面的u8 code smgduan[17] 同理 謝謝 |
在這里它就是unsigned char KeyValue;如果你的變量KeyValue在運算中裝載的數據可能大于127,就應該定義為:unsigned int KeyValue;如果有其他的預定義還可以寫作uchar dat,uint dat,ulong dat,u8 dat,u16 dat 等等。 |
csmyldl 發表于 2020-2-1 21:29 嗯嗯,謝謝 |
odfggf 發表于 2020-2-1 20:40 哦哦,這回明白了,謝謝你。 |
fumoumou 發表于 2020-2-1 18:05 是呀,u8 KeyValue就是unsigned char KeyValue |
因為typedef啊 |
fumoumou 發表于 2020-2-1 18:05 之前用了typedef unsigned char u8預處理命令,所以u8 KeyValue沒問題。 沒有typedef定義,寫成unsigned char KeyValue也可以 |
u8就是unsigned char的別名呀,u8 KeyValue; 就是 unsigned char KeyValue; 這樣懂了吧 |
KEIL C51非通用C語言,有一些特定的規范,如 data:固定指前面0x00-0x7F的128個RAM,可以用acc直接讀寫,速度最快,生成的代碼也最小。 idata:固定指前面0x00-0xFF的256個RAM,其中前128和data的128完全相同,只是訪問的方式不同。 xdata:外部擴展RAM。 code:ROM。 |
csmyldl 發表于 2020-2-1 12:40 我感覺我學了一個假的c語言 |
csmyldl 發表于 2020-2-1 12:39 這個和我學的c語言號好像不太一樣,不是應寫成int KeyValue;嗎? c語言的變量定義不是“類型名+ 變量名”嗎? |
還是建議你先去學習一下C語言的基本知識 |
u8 KeyValue;就是定義一個存儲8位二進制的內存空間,這就是變量的定義方式呀,而不能使用define來定義 |