C51 局部变量定义在函数的位置
switch(menl){unsigned char a;
case 2:
LCD_write_string(0, 0, "P0: 152 78450%", 16);
LCD_write_string(0, 1, "P1: 152 78450%", 16);
a++;
break;
case 3:
LCD_write_string(5, 0, "P2=TIME", 7);
LCD_write_string(7, 1, "(YES)", 5);
break;
}
如上的程序片段,变量 unsigned char a放在 switch(menl){大括号下,编译器没有报错,这样可以?有风险?谢谢
记得Keil C51/251默认支持C89规范,如果想变量定义不在函数开头,需要添加C99规范的支持才行 另外,Keil ARM是支持C99的。 本帖最后由 tzz1983 于 2024-3-4 09:18 编辑
没有风险, 只能大括号内能访问
规则就是定义变量紧跟大括号就可以.
大括号被解释为复合语句, 复合语句和函数一样, 是可以定义自己的变量的.
比如:
{
int a=0;
....
}
if(1)
{
int a=0;
....
}
这样都是可以的
tzz1983 发表于 2024-3-3 22:44
没有风险, 只能大括号内能访问
规则就是定义变量紧跟大括号就可以.
好的,谢谢!
页:
[1]