labview的深入探索----如何實(shí)現(xiàn)類似C的函數(shù)指針調(diào)用
我們先看看C的一個(gè)函數(shù)指針調(diào)用的例子:
#include
int max(int x,int y)
{
int z;
if(x>y) z=x;
else
z=y;
return (z);
}
//求最大值
int min(int x,int y)
{
int z;
if(x>y) z=y;
else
z=x;
return(z);
}
//求最小值
int add(int x,int y)
{
return(x+y);
}
//求和
int process(int x,int y,int (*fun)())
{
int result;
result=fun();
return result;
}
int main()
{
int a,b,result;
a=10;
b=5;
result=process(a,b,max);
result=process(a,b,min);
result=process(a,b,add);
}
從上面的C程序可以看出,通過一個(gè)PROCESS函數(shù),可以實(shí)現(xiàn)不同的函數(shù)調(diào)用,這就是函數(shù)指針的重要用途.LABVIEW是否能實(shí)現(xiàn)類似的功能?
通過VI SERVER可以實(shí)現(xiàn)類似的功能.我通過一個(gè)簡(jiǎn)單的例子說明實(shí)現(xiàn)的過程.
首先定義兩個(gè)加法和乘法的子VI.
注意,必須定義連接器,而且參數(shù)數(shù)量和位置必須完全相同(所謂的嚴(yán)格類型定義)
評(píng)論