以传递整型参数为例:在参数配置面板,我们可以选择值传递(Pass Value)或选择指针传递(Pass Pointer to Value)。
当选择了值传递时,库函数调用节点是不会改变该参数的内容的。如果我们在该库函数调用节点参数的左侧接线端引入输入数据,在输出端引出输出参数,那么输出数据其实是直接由输入数据引出的,LabVIEW不会在这个节点处开辟缓存。
在指针传递方式时,LabVIEW则认为传入的数据会被改变。如果输入数据同时还要发往其它节点,LabVIEW会在此处开辟缓存,为输入数据作一个副本。选用指针传递方式,库函数调用节点的每一对接线端也同样是缓存重用的。就是说,库函数调用节点的输出值是直接存放在输入值的缓存空间的。
如果一个参数只用作输出,我们通常会在库函数调用节点的输入接线端为它建立一个输入常数,这个常数的地址空间并不能直接被利用,它只是为库函数调用节点开辟的缓存而设置的初始值。不接输入常数,LabVIEW也会为此参数开辟一块缓存。但是,这样每次传入的参数值都会有变化。例如图5,库函数调用节点调用的函数功能是为把输入的值加1,然后输出。图5-a中的输出值永远都是1,而图5-b,每次运行输出结果都会比前次增加1。这是因为库函数调用节点每个指针传递的参数的输入输出用的是同一块缓存,即每次运行输入值是上回的输出值。
如果一个参数只用作输出,我们通常会在库函数调用节点的输入接线端为它建立一个输入常数,这个常数的地址空间并不能直接被利用,它只是为库函数调用节点开辟的缓存而设置的初始值。不接输入常数,LabVIEW也会为此参数开辟一块缓存。但是,这样每次传入的参数值都会有变化。例如图5,库函数调用节点调用的函数功能是为把输入的值加1,然后输出。图5-a中的输出值永远都是1,而图5-b,每次运行输出结果都会比前次增加1。这是因为库函数调用节点每个指针传递的参数的输入输出用的是同一块缓存,即每次运行输入值是上回的输出值。
图5: