咱们都知道,LV是根据数据流的图形编程言语.咱们在单步监督LV的运行时,在连线的任何一处检查的它的数据都是相同的,的确有点数据活动的意思.
LABVIEW的连线色彩,线条粗细代表不同的数据,不同很大的两种类型是无法连接到一同的,可见,LV在任何时刻都知道正在活动的数据类型,它是经过什么完成的那?
答案是:类型描述符.TYPE DESCRIPTOR
类型描述符包含那些内容那,咱们从最简略地BOOLEAN看一下
LABIEW随时保护一个存储结构,其间包含类型描述符,能够看出,BOOLEAN的存储结构是一个I16数组,现在共有四个元素,
0x08 0x4021 0x0343 0x4243
第一个I16是长度字节:4*2BYTE=8 BYTE
第二个I16是分红高位字节和低位字节两部分:40和21(HEX),其间40是LV保存部分,21是BOOLEAN的类型码,类型码是一一对应的(TYPE CODE)
第三个元素高位字节表明控件姓名的长度,低位字节是姓名第一个字母的ASCII,接下来是第二个字母和第三个字母.
这儿 把长度和类型码合在一同称做类型描述符(TYPE DESCRIPTOR)
TYPE DESCRIPTOR:
所以类型描述符中包含了控件数据的类型和这个存储结构总长度,能够看出,咱们比如中的BOOLEAN称号是ABC,对应的ASCII分别是41,42,43.咱们知道,BOOLEAN在内存中占一个字节,类型描述符中没有它的值,它的值体现在它所占的内存字节中,该字节为0,则为FALSE,该字节非0,则为TRUE.
在看看标量数值类型
U8: 0X0008 0X4005 0X0255 0X3800
8*2BCODE=052 CAHR 55->U 38->8
U16:0X0008 0X4006 0X355 0X3136
8*2BCODE=063 CAHR 55->U 31->1 36->6
DBL: 0X0008 0X400A 0X0344 0X424C
8*2BCODE=0A3 CAHR 44->D 42->B 4C->L
其他数值标量也彻底类似.它的存储结构包含类型描述符(长度和类型码),称号长度和称号的ASCII串.
ENUM和RING本质上也是数值数据类型,不过它包含了杂乱的称号,先看看ENUM.
能够看到,数据总长度是0x16,类型码是0x16,0x04表明ENUM共包含四个元素,0x0241中0X02表明第一个元素称号长度是2个字符,分别是0X41,0X41 (AA),顺次,第二个元素是0X42 0X42(BB),第三个元素是0X43 0X43(CC),第四个元素是0X44,0X44(DD),最终0X0341中的高字节0X03表明枚举的称号字符传长度是3个字节(字符),分别是0X41,0X42,0X43,便是ABC.