<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 測試測量 > 設計應用 > LabVIEW中變體使用的一些問題

          LabVIEW中變體使用的一些問題

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


          關鍵詞: LabVIEW變體使

          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();