在这里它就是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来定义 |