@霜纹布 @chaiyu2010 @深爱乃沉默0807
我做了个实验忘了说了。我直接把一个变量命名为size,像这样:
unsigned char size = 0;
然后把程序拿给Keil编译,没有出错。而只要换成真正的关键字:
unsigned char sizeof = 0;
就不出意料地报错了。
所以,就关键字定义中的“不能作其它用途使用,例如命名变量”来看,size不是C51的关键字。
但是size是否什么用都没有了呢?应该也不是。C里内嵌汇编要用的ASM和ENDASM,它有命令编译器停止把语句解析为汇编语句的作用,而且显示红色;还有一个小写的asm,作用我不知道,但甚至显示蓝色。可是ASM、ENDASM、asm都不是关键字,都可以用来命名变量。这么看,一些有特殊作用的标识符不作为关键字也能显示为红/蓝色的情况也是存在的。(我之前只说暗红色意味着C51专有的关键字看来是不完全对的)那么size不必是关键字,它也可能在不为人知的某些场合下发挥作用,是什么场合我还是不知道。
我做了个实验忘了说了。我直接把一个变量命名为size,像这样:
unsigned char size = 0;
然后把程序拿给Keil编译,没有出错。而只要换成真正的关键字:
unsigned char sizeof = 0;
就不出意料地报错了。
所以,就关键字定义中的“不能作其它用途使用,例如命名变量”来看,size不是C51的关键字。
但是size是否什么用都没有了呢?应该也不是。C里内嵌汇编要用的ASM和ENDASM,它有命令编译器停止把语句解析为汇编语句的作用,而且显示红色;还有一个小写的asm,作用我不知道,但甚至显示蓝色。可是ASM、ENDASM、asm都不是关键字,都可以用来命名变量。这么看,一些有特殊作用的标识符不作为关键字也能显示为红/蓝色的情况也是存在的。(我之前只说暗红色意味着C51专有的关键字看来是不完全对的)那么size不必是关键字,它也可能在不为人知的某些场合下发挥作用,是什么场合我还是不知道。