labview的深入探索------順序結(jié)構(gòu)是"結(jié)構(gòu)"嗎?
LABVIEW的"結(jié)構(gòu)"的概念同C語(yǔ)言有很大不同,C語(yǔ)言中中的結(jié)構(gòu)指的是復(fù)合數(shù)據(jù)類型,labview所謂的結(jié)構(gòu)相當(dāng)于C語(yǔ)言的程序運(yùn)行結(jié)構(gòu),包括循環(huán)、順序結(jié)構(gòu)、條件結(jié)構(gòu)、事件結(jié)構(gòu)等,這里面尤其需要強(qiáng)調(diào)的是順序結(jié)構(gòu),無(wú)論是平鋪式順序結(jié)構(gòu)還是堆疊式順序結(jié)構(gòu),NI都不建議使用,原因主要有以下幾點(diǎn):
1:強(qiáng)行規(guī)定的動(dòng)作次序,影響了數(shù)據(jù)流的傳遞方式。
2:內(nèi)存使用上,順序結(jié)構(gòu)比較同樣性能的數(shù)據(jù)依賴關(guān)系的數(shù)據(jù)流,程序框圖所占的內(nèi)存空間比較大。
我們?cè)谧鱒I性能分析的時(shí)候,也能看到一個(gè)有趣的現(xiàn)象,LV雖然把順序界結(jié)構(gòu)放在函數(shù)選板的結(jié)構(gòu)子類中,但是在統(tǒng)計(jì)中,順序結(jié)構(gòu)并沒(méi)有被看成是結(jié)構(gòu),而是作為一般的節(jié)點(diǎn),其中每增加一個(gè)禎就增加一個(gè)節(jié)點(diǎn),所以一個(gè)復(fù)雜的順序結(jié)構(gòu)會(huì)增加大量的節(jié)點(diǎn),從這個(gè)角度也可以說(shuō)明,從LABVIEW的內(nèi)部來(lái)看,順序結(jié)構(gòu)并不時(shí)真正意義的運(yùn)行結(jié)構(gòu)。
可以發(fā)現(xiàn),for ,while ,case 都是結(jié)構(gòu),本身也是一個(gè)節(jié)點(diǎn)
順序結(jié)構(gòu)并沒(méi)有被統(tǒng)計(jì)為結(jié)構(gòu),而只是一般的節(jié)點(diǎn),每一個(gè)FRAME都是一個(gè)節(jié)點(diǎn)。