22问答网
所有问题
当前搜索:
局部变量每次调用都会清零吗
local variable 'a' used without having been initialized 怎么办...
答:
这句提示的意思是,
局部变量
a使用时未被初始化。C语言将局部变量放在栈中,即在函数入口处添加一句指令subl $xx, %esp来上移栈顶指针,为局部变量流出空间。而系统管理栈,只有push压入、pop弹出两种基本操作,pop弹出之后不会将那块区域的内容
清零
,所以说局部变量的值是不确定的,因为栈中那块地方...
VB一个一个打字怎么弄
答:
Timer1_Timer 事件里面的 i 是个
局部变量
,将覆盖开头的模块级变量 i,所以
每次
运行该事件都会变初始值(0)。将Timer1_Timer 事件里 i 的定义删除即可,因为你已经在外面定义了一个模块级变量。既然定义了模块级的变量 i,其他过程里面就不需要定义了,只要注意在过程开头
清零
就可以了。
continue跳出本次循环的时候,本次循环当中的
局部变量
是否释放?具体代码...
答:
在c里面只要申明过一次,就会在内存里自动开辟出一块区域,直到程序结束,或者你手动释放才会释放出去,而且你第一次申明过了以后,以后所有的在此申明都不会替换这个区域,所以你第一次内存的数据会一直存在,除非你重新定义申明一个
变量
,或者你对这个区域内的内容作操作 ...
怎样
清空
char buf?
答:
回答:用:memset(buf,0,100)
清零
,也是
清空
(C++中 null = 0) 若不用buf,退出函数即可.char buf[100]中buf只是一个
局部变量
且存于"运行栈"上,函数结束自然释放. 对于char *buf = new char[100];的数组清零也可用memset(buf,0,100),释放则应该显式
调用
:delete []buf;
S7200 时间继电器在不同的子程序中为什么会互相干扰
答:
可能程序
变量
有冲突,再次
调用
时一定是被
清零
了,
step7中,编写FB或是FC块时,可不可以用M点代替
局部变量
?
答:
1,可以,但是不推荐。因为做成FB/FC块的目的就是重复
调用
,如果用M点,那就会造成重复调用时地址重复而导致程序有可能无法正常运行。3,FC一定可以做成FB,FB就不一定能做成FC了。因为FB有自带背景数据,也就是可以存储一些中间
变量
,以便在下个循环周期使用,而FC则不行。
单片机都有RAM,如果我们一下子定义了一大堆的
变量
,使得变量占的空间大...
答:
如果说C语言编译过程中有加这种功能,也很难想象会在每个工作周期中不断的去检查哪些单元闲置的,并且对其
清零
。因为这样要占用很多CPU时间。个人猜测,注意,是猜测!应该是当不得不要把某个物理单元划分给新的变量时,才会真的把旧变量清除掉。否则,哪怕是
局部变量
,对应的物理单元应该是一直不变的。
C++请教高手指点:
答:
没有问题啊,答案就是12345 func1和func2是两个函数 int func1(){ int n=12345;return n;} 这是对于函数的实现 主函数中 int main(){ func1();cout<<func2()<<endl;}
调用
了fun1和fun2这两个函数,fun1中初始化了n,并且入栈,然后fun2中初始化了m,则取栈中的12345。如果修改程序...
大神帮忙下忙,我对这C语言有点疑惑。
答:
在函数abc()运行完成之后,变量b的生命周期已经结束,如果再以b[]或*b方式
调用变量
b编译器则会提示错误。这样系统已经做到释放b所占的内存,最终的效果是,b所在的内存可分配给其它变量使用。但系统并没有做——把b所占内存
清零
——的操作,这也是不需要的,(释放并不等于清零)。在我写的main()...
...怎样在跳出循环时初始化循环呢?就是说
清零
循环内的数据
答:
方法一:你可以把这2个循环封装成2个VI ,你是不是用的移位寄存器来存储数据的?因为VI在
每次
加载会重新赋值,你把后面的值通过连接端赋值到前面的那个VI 就可以实现了 方法二:采用
局部变量
的方法,在后面的循环完成后,将结果的那个值赋值到局部变量,然后由前面的循环来引用 ...
<涓婁竴椤
1
2
3
4
5
6
7
8
9
涓嬩竴椤
其他人还搜