![]() |
1
4
正如前面所说的,您不能以自然的方式来实现这一点,但是有一个使用数据值引用的解决方法(需要LV2009)。给输出参数指定NULLpointer的想法是一样的。结果在input中作为数据值引用(指针)给出,并检查 不是参考资料 下面是子vi(case true当然不起作用):
这里是召唤六:
图像是VI代码段,因此您可以在图表上拖放以获取代码。 |
![]() |
2
2
我建议你走错路了。如果编译器没有足够的智能来避免自己的计算,那么就做两个版本的VI。一个做昂贵的计算,一个不做。然后做一个多态VI,让你可以在它们之间切换。在设计时你已经知道你想要哪个版本(因为你要么连接输出终端要么不连接),所以只需要使用正确版本的多态VI。 或者,传入一个变量,用于打开或关闭计算中昂贵部分的Case语句。 |
![]() |
3
1
|
![]() |
4
1
可以使用“脚本”特性对代码进行静态分析。这需要拉取调用层次结构,并跟踪连线引用。 拉拢一个试验这个,有一些困难。同一图表上的多个相同的子vi很难区分。而且,终端引用似乎主要通过名称来访问,这可能导致与其他vi的同名终端发生一些冲突。 this . |
![]() |
5
0
一般来说,LV编译器优化机器代码的方式是,未使用的代码甚至不会内置到可执行文件中。 这不适用于subVIs(因为无法知道您不会尝试以某种方式使用指示符的值,尽管LV可以在构建可执行文件时删除FP,也可能会这样做),但是有一种方法可以让它应用于subVI-内联subVI,这样编译器就可以看到没有使用的输出。您还可以将它的优先级设置为subroutine,这可能也会这样做,但我不建议这样做。 官方称,in-lining仅在lv2010中提供,但在旧版本中有访问私有VI属性的方法。不过,我不建议这样做,而且2010年在这方面可能有一些老版本没有的优化。 一般来说,编译过程的细节不会公开,并且随着NI调整编译器,在LV版本之间会有所不同。整个过程应该在LV2010中进行了一次重大升级,并且应该在NI的网站上进行一次网络直播,其中包含一些细节。 |
![]() |
Kono · 动态寻址I2C从机;即插即用 7 年前 |
|
zee · LabView---如何将加速度值的范围映射到特定频率? 9 年前 |
![]() |
user1750948 · 如何在labview中查找显示器的dpi 11 年前 |
![]() |
Koushik Shetty · 更新while循环内的输出 12 年前 |