对,局部变量有它的生存期,不能乱定义 |
fj51hei 发表于 2022-8-31 11:53 c语言有个bug,就是如果你定义了一个全局变量,比如i,那么在这个全局变量有效作用范围内,你还可以定义一个局部变量i,在函数内部使用的是局部变量i,这也算是一个可能进去的坑。 |
外部变量算全局变量?放子程序里定义有什么目的? |
yes 必须这样 |
子程序中定义的变量是局部变量 ,局部变量,也称内部变量,是指在一个函数内部或复合语句内部定义的变量。 局部变量的生存期:从函数被调用的时刻算起到函数返回调用处的时刻结束。所以,子程序执行完毕后,局部变量就自动消亡了,这时局部变量的值是什么,谁也不知道了......这就是你说的乱码...... |
请教下大家,我现在在子程序里面又定义了个外部寄存器的变量,发现这个寄存器很容易被篡改成其它的乱码值,定义寄存器一定要写在开头吗? |
子程序里面的变量叫局部变量,而每次进入函数,局部变量的值都是不确定的。 |
这个i变量所占寄存器位置,推出子程序,会重新分配被其它变量使用。所以会乱码 |
不要玩非典型用法。寄存器都是在头文件定义好的。 |