问题描绘:LabVIEW中有一种特别的数据类型叫做变体。LabVIEW官方将变体成为能够包容一切数据类型的一个容器,能够传入简直一切的数据类型,比方能够将某个数值转化为变体,然后再通过相应的变体至数值转化即可得到本来的值了。变体有许多很好的用途,可是编程也简单呈现问题的,下面就一点点实践上的问题做下记载。
什么是变体:变体其实存储了两部分内容,榜首部分是数据类型的描绘,第二部分便是数值自身的存储了,因而在将数据类型的值转为变体时,不只存储了该值,还有相应类型的描绘。在从变体转为数据类型时,需求知道本来的数据类型,然后与之匹配转化出原值。这个功用看似将数据转来转去,多此一举,并且数据类型弄错就会导致过错的数据,可是变体对错常有用的,就像C言语中的全能指针相同,当不确认需求传入的数据为何种类型时,其运用价值就体现出来了。或许LabVIEW更多的像C言语一些,尽管现在也有面向对象部分的功用,但数据流的方式愈加接近于进程操控。
变体用在何处:上面的在传入数据类型不确认时运用变体很有用是一点,别的一点便是对ActiveX控件数据的传输,比方MSCOMM控件,还有数据库相关的DCT东西中数据的存取等,都用到的是变体。
变体运用的最大问题:最大的问题应该便是数据类型的确认了,这也是变体的自身的特色决议的。许多时分比方在运用ActiveX控件的时分,并不知道变体是如何将数据转化成愈加底层的数据的,也便是只需运用到变体至数值或者是数值至变体中的一个,变体是从ActiveX中传来的,这时就必须具体的了解该ActiveX变体所支撑的数据类型了,不然编程中会呈现十分古怪的数据过错问题。比方该ActiveX控件的变体只支撑字符串和一维字节数组的传入,但由于没有了解到这一点,在编程时给ActiveX控件变体传入了float型数值,程序上并没有过错,可是ActiveX控件得到的数据并非需求的,通过转化后得到的是过错的数值,成果就呈现不可思议的问题了。
变体的特色:因而变体运用灵敏,可是在没有彻底了解其数据类型转化的情况下运用也是简单出问题的。
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/xinnengyuan/212796.html