关于stl里的= l 0.0问题
郑志武
发布于2013-01-17 23:55
1
0
标签:
在用lad编的程序转成stl的时候会多出许多=lx.x之类的,请问这是什么?是临时存储区的吗?它为什么会生成这个?生成这个在stl里面有什么作用?我在看程序的时候又该如何去理解它?谢谢,下面是我编程时的一个图片,给我简单的讲解下这个=l在里面的作用,谢谢了各位大侠,高分送上!
问题补充:
kapok的回答很详细,很感谢,我能再补充一下吗?它为什么要用=l11.0而不用其它地址呢?如12.0,5.0之类的,是系统分配的,还是有什么规律可循呢?
图片说明: 1,lad转stl后的显示
佳答案
1、lad编的程序转成stl的时候会多出许多=lx.x之类的,请问这是什么?是临时存储区的吗?它为什么会生成这个?生成这个在stl里面有什么作用?我在看程序的时候又该如何去理解它?
=lx.x之类为临时变量,是临时存储区。系统生成临时变量的作用是起到中间过渡单元。
在看程序的时候该如何去理解它呢?这样理解,当块执行的时候它们被用来临时存储数据,当退出该块时这些数据将丢失。
2、讲解下这个=l在里面的作用?
例如,程序中的=l11.0:
这是系统自动生成的就是解决梯形图的”t"型(即“逻辑或”操作)的方法。即,当lad转成stl的时候,转换梯形图的”t"型(即“逻辑或”操作),系统都这样转换。
3、它为什么要用=l11.0而不用其它地址呢?如12.0,5.0之类的,是系统分配的,还是有什么规律可循呢?
临时存储区实际上是l堆栈区域,当系统调用fb/fc时会将调用前的现场(例如cpu的状态等)保存起来,待调用fb/fc完成时还要恢复所保存的现场。所以,系统保存现场需要l堆栈区域,这样分配给lad转成stl的临时变量就要顺次排序了。
有规律可循,但作为用户不需顾及这些,系统分配什么就什么了,认为是排序而来的就可以了。