[Variant]LabVIEW中变体使用的一些问题

原创 2015年07月11日 00:22:52
   问题描述:LabVIEW中有一种特殊的数据类型叫做变体。LabVIEW官方将变体成为可以容纳所有数据类型的一个容器,可以传入几乎所有的数据类型,比如可以将某个数值转换为变体,然后再通过相应的变体至数值转换即可得到原来的值了。变体有许多很好的用处,但是编程也容易出现问题的,下面就一点点实践上的问题做下记录。
   什么是变体:变体其实存储了两部分内容,第一部分是数据类型的描述,第二部分就是数值本身的存储了,因此在将数据类型的值转为变体时,不仅存储了该值,还有相应类型的描述。在从变体转为数据类型时,需要知道原来的数据类型,然后与之匹配转换出原值。这个功能看似将数据转来转去,多此一举,而且数据类型弄错就会导致错误的数据,但是变体是非常有用的,就像C语言中的万能指针一样,当不确定需要传入的数据为何种类型时,其使用价值就体现出来了。可能LabVIEW更多的像C语言一些,虽然现在也有面向对象部分的功能,但数据流的形式更加接近于过程控制。
   变体用在何处:上面的在传入数据类型不确定时使用变体很有用是一点,另外一点就是对ActiveX控件数据的传输,比如MSCOMM控件,还有数据库相关的DCT工具中数据的存取等,都用到的是变体。
   变体使用的最大问题:最大的问题应该就是数据类型的确定了,这也是变体的本身的属性决定的。许多时候比如在使用ActiveX控件的时候,并不知道变体是如何将数据转换成更加底层的数据的,也就是只要使用到变体至数值或者是数值至变体中的一个,变体是从ActiveX中传来的,这时就必须详细的了解该ActiveX变体所支持的数据类型了,否则编程中会出现非常奇怪的数据错误问题。比如该ActiveX控件的变体只支持字符串和一维字节数组的传入,但由于没有了解到这一点,在编程时给ActiveX控件变体传入了float型数值,程序上并没有错误,但是ActiveX控件得到的数据并非需要的,经过转换后得到的是错误的数值,结果就出现莫名其妙的问题了。
   变体的特点:因此变体使用灵活,但是在没有完全了解其数据类型转换的情况下使用也是容易出问题的。
版权声明:本文为博主原创文章,未经博主允许不得转载。

Gradle —— 使用 Gradle 打包多个变体(variant)

转载请标明原文地址:http://www.jianshu.com/p/843055bf6edd 刚开始使用 CSDN 博客,故将原来写在简书的文章迁移到 CSDN 的博客,并重新进行排版。 背...

安卓build variant ----Gradle for Android( 构建变体 )

文章出自Gradle for Android第四章( 构建变体 ) 当你在开发一个app,通常你会有几个版本。大多数情况是你需要一个开发版本,用来测试app和弄清它的质量,然后还需要一个生产版本...

变体VARIANT

目前计算机语言多种多样,如C++、Java、Basic、Pascal等,此外还有JavaScript、VBScript、ActionScript等脚本语言,它们各自维护自己的数据类型,当使用C++这样...
  • xinmuba
  • xinmuba
  • 2013年05月27日 10:22
  • 867

在c++中模拟变体变量variant, 用宏实现

为了变体类型做好之后,  使用统一的接口, 需要做很多getter, setter.  用宏做getter, setter, 降低了很多工作量. /// @file exam_1_1.cpp //...

斐波那契数列及其变体走楼梯问题

对于斐波那契数列大家都很熟悉,其形式是  。递归写法是 public int fibonacci(int n){ if(n==1 || n==2) return 1; return fibo...

超大的变体背包问题(折半枚举/双向搜索)

来源:挑战程序设计竞赛p162 最近又遇到了这个问题 来总结一下好了 算是补档吧。。。问题? 有N\mathcal N件物品和一个容量为W\mathcal W的背包。第i件物品的费用是wiw_i...
  • DareXK
  • DareXK
  • 2017年03月23日 23:53
  • 231

Delphi 变体类型(Variant)的介绍(流与变体类型的相互转换、变体类型常用的函数)

一、变体类型常用的函数介绍:         Variant: 一种可以拥有各种数据类型; 也可以告诉目前存储的数据是什么类型(通过使用VarType函数); 可以给相同的Variant分配不同的数...

关于CFile使用的一些问题

  • 2012年10月24日 21:24
  • 620KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[Variant]LabVIEW中变体使用的一些问题
举报原因:
原因补充:

(最多只允许输入30个字)