色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > LabVIEW中變體使用的一些問題

          LabVIEW中變體使用的一些問題

          作者: 時(shí)間:2017-01-06 來(lái)源:網(wǎng)絡(luò) 收藏
          問題描述:LabVIEW中有一種特殊的數(shù)據(jù)類型叫做變體。LabVIEW官方將變體成為可以容納所有數(shù)據(jù)類型的一個(gè)容器,可以傳入幾乎所有的數(shù)據(jù)類型,比如可以將某個(gè)數(shù)值轉(zhuǎn)換為變體,然后再通過相應(yīng)的變體至數(shù)值轉(zhuǎn)換即可得到原來(lái)的值了。變體有許多很好的用處,但是編程也容易出現(xiàn)問題的,下面就一點(diǎn)點(diǎn)實(shí)踐上的問題做下記錄。
          什么是變體:變體其實(shí)存儲(chǔ)了兩部分內(nèi)容,第一部分是數(shù)據(jù)類型的描述,第二部分就是數(shù)值本身的存儲(chǔ)了,因此在將數(shù)據(jù)類型的值轉(zhuǎn)為變體時(shí),不僅存儲(chǔ)了該值,還有相應(yīng)類型的描述。在從變體轉(zhuǎn)為數(shù)據(jù)類型時(shí),需要知道原來(lái)的數(shù)據(jù)類型,然后與之匹配轉(zhuǎn)換出原值。這個(gè)功能看似將數(shù)據(jù)轉(zhuǎn)來(lái)轉(zhuǎn)去,多此一舉,而且數(shù)據(jù)類型弄錯(cuò)就會(huì)導(dǎo)致錯(cuò)誤的數(shù)據(jù),但是變體是非常有用的,就像C語(yǔ)言中的萬(wàn)能指針一樣,當(dāng)不確定需要傳入的數(shù)據(jù)為何種類型時(shí),其使用價(jià)值就體現(xiàn)出來(lái)了。可能LabVIEW更多的像C語(yǔ)言一些,雖然現(xiàn)在也有面向?qū)ο蟛糠值墓δ?,但?shù)據(jù)流的形式更加接近于過程控制。
          變體用在何處:上面的在傳入數(shù)據(jù)類型不確定時(shí)使用變體很有用是一點(diǎn),另外一點(diǎn)就是對(duì)ActiveX控件數(shù)據(jù)的傳輸,比如MSCOMM控件,還有數(shù)據(jù)庫(kù)相關(guān)的DCT工具中數(shù)據(jù)的存取等,都用到的是變體。
          變體使用的最大問題:最大的問題應(yīng)該就是數(shù)據(jù)類型的確定了,這也是變體的本身的屬性決定的。許多時(shí)候比如在使用ActiveX控件的時(shí)候,并不知道變體是如何將數(shù)據(jù)轉(zhuǎn)換成更加底層的數(shù)據(jù)的,也就是只要使用到變體至數(shù)值或者是數(shù)值至變體中的一個(gè),變體是從ActiveX中傳來(lái)的,這時(shí)就必須詳細(xì)的了解該ActiveX變體所支持的數(shù)據(jù)類型了,否則編程中會(huì)出現(xiàn)非常奇怪的數(shù)據(jù)錯(cuò)誤問題。比如該ActiveX控件的變體只支持字符串和一維字節(jié)數(shù)組的傳入,但由于沒有了解到這一點(diǎn),在編程時(shí)給ActiveX控件變體傳入了float型數(shù)值,程序上并沒有錯(cuò)誤,但是ActiveX控件得到的數(shù)據(jù)并非需要的,經(jīng)過轉(zhuǎn)換后得到的是錯(cuò)誤的數(shù)值,結(jié)果就出現(xiàn)莫名其妙的問題了。
          變體的特點(diǎn):因此變體使用靈活,但是在沒有完全了解其數(shù)據(jù)類型轉(zhuǎn)換的情況下使用也是容易出問題的。


          關(guān)鍵詞: LabVIEW變體使

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉