微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 测试测量 > Labview > labview深入探索------全局变量、局部变量与内存管理

labview深入探索------全局变量、局部变量与内存管理

时间:10-02 整理:3721RD 点击:
labview深入探索------全局变量、局部变量与内存管理

很多教科书上都提示要慎用局部变量和全局变量,主要有以下几个原因:


违背了数据流的编程
读取局部变量需要拷贝数据
不能象SUBVI一样可以重用数据BUFFER
不利于程序调试
容易引起竞争

我在论坛上看到很多初学者的程序,里面充满了大量的局部变量,可以这样说,当你使用了过多的局部变量的时候,你的程序结构是有问题的,在早期的LV版本中根本不存在全局变量和局部变量,同样可以编制规模很大的程序,这说明局部变量和全局变量并不是必须的,LV提供了它们是因为在特定的情况下可以简化编程。

当我们使用SUBVI时,我们需要定义一个连接器,包括输入输出端子,调用VI的数据从输入端子进入,当SUBVI未执行完毕时,数据是不会流出到输出端子的,因此,SUBVI可以重用调用VI的数据缓冲区。而局部变量可以在子VI的任何位置被读写,局部变量在同一一个VI中,全局变量可以在任何VI中,所以通常情况下,无法重用数据缓冲区。

局部变量用于读写一个VI的前面板对象,对象是控制器或者指示器都可以,当我们读局部变量的时候,我们是在对象的当前状态,而对象在程序框图中的其它位置,其它的线程可能连续写这个对象,所以LABVIEW无法重用内存,不得不拷贝数据到新的缓冲区中,如果数据结构很大,就会占用相当多的内存。

不错!

good

有道理

good

very good

分析不错

太棒了,就用它入门了!

不错

谢谢提醒

谢谢小编分享

是这个道理的顶顶顶顶顶顶顶顶顶顶

顶一下!

dddddddddddddddddddddddddddddddddddddddd

似乎没有把问题讲清楚  现在我比较喜欢用局部变量   用顺序结构 控制 数据流。

不错的解释呀

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top