admin 管理员组

文章数量: 1086019


2024年3月27日发(作者:二郎神杨戬的妻子)

LabVIEW 中变体使用的一些问题

问题描述:LabVIEW 中有一种特殊的数据类型叫做变体。LabVIEW 官

方将变体成为可以容纳所有数据类型的一个容器,可以传入几乎所有的数据类

型,比如可以将某个数值转换为变体,然后再通过相应的变体至数值转换即可

得到原来的值了。变体有许多很好的用处,但是编程也容易出现问题的,下面

就一点点实践上的问题做下记录。 什么是变体:变体其实存储了两部分内容,

第一部分是数据类型的描述,第二部分就是数值本身的存储了,因此在将数据

类型的值转为变体时,不仅存储了该值,还有相应类型的描述。在从变体转为

数据类型时,需要知道原来的数据类型,然后与之匹配转换出原值。这个功能

看似将数据转来转去,多此一举,而且数据类型弄错就会导致错误的数据,但

是变体是非常有用的,就像 C 语言中的万能指针一样,当不确定需要传入的数

据为何种类型时,其使用价值就体现出来了。可能 LabVIEW 更多的像 C 语言

一些,虽然现在也有面向对象部分的功能,但数据流的形式更加接近于过程控

制。 变体用在何处:上面的在传入数据类型不确定时使用变体很有用是一点,

另外一点就是对 ActiveX 控件数据的传输,比如 MSCOMM 控件,还有数据库

相关的 DCT 工具中数据的存取等,都用到的是变体。 变体使用的最大问题:

最大的问题应该就是数据类型的确定了,这也是变体的本身的属性决定的。许

多时候比如在使用 ActiveX 控件的时候,并不知道变体是如何将数据转换成更

加底层的数据的,也就是只要使用到变体至数值或者是数值至变体中的一个,

变体是从 ActiveX 中传来的,这时就必须详细的了解该 ActiveX 变体所支持的

数据类型了,否则编程中会出现非常奇怪的数据错误问题。比如该 ActiveX 控

件的变体只支持字符串和一维字节数组的传入,但由于没有了解到这一点,在

编程时给 ActiveX 控件变体传入了 float 型数值,程序上并没有错误,但是


本文标签: 变体 数据类型 数据 使用 问题