看到今日的谈论,主张我写一点有关REFERENCE的文章,确实早就想写点这部分内容,可是不太简单,由于NI这方面的中文材料很少,我乃至无法精确地翻译REFERENCE。
REFERENCE的惯例翻译是参阅,目前国内有关LV的书本也是这样翻译的,可是从我个人了解仍是翻译成引证比较好。
为了精确了解引证的概念有必要先解释一下C言语中指针的概念。
int var;
int *pVar;
pVar=&var;
当咱们声明晰var整型变量后,在计算机的内存中就分配了四个字节的接连内存空间(与编译器有关,前期是两个字节),pVar是一个指向整型变量的指针,它自身便是32位整型数,天然也占四个字节的内存空间,不过这四个字节的内容是VAR的内存地址。
LV的参阅是什么那?我个人了解便是目标的指针。我在一篇文章中说到,LV自身是根据数据流的,不过它的前面板控件却是典型的面向目标的类的承继联系。LV的目标便是指向各品种的指针(当然不仅仅是控件,菜单,文件等也是用参阅进行参数传递的)。
C言语的指针有两种状况,一是未指向任何变量的指针( int *pVar,此刻,仅仅界说了指针,未指向任何变量或许目标),二是指向了特定的变量或许目标(pVar=&var)
实践上,LV的参阅也分红这两种状况,咱们能够经过两种方法来创立控件的参阅。
咱们以CONTROL REFERENCE为例,当咱们在前面板生成这个控件的时分,该控件未指向任何特定的控件,乃至未指向任何特定的数据类型,比方BOOLEAN ,NUMERIC等等。
从C言语的视点,更像界说了一个void *pVar;(当然,它现已指定的规模,是控件的参阅)
咱们能够以为它指向的是控件的基本类,可是是未初始化的,未指向特定目标。
LABVIEW的每一个REFERENCE都有一个编号,称为REFERENCE NUMBER,简写RefNum,RefNum是目标(可能是控件,面板,文件,菜单等)的仅有标识符号,这个标识符号假如了解成指针应该是个I32表明的内存地址。
关于C言语,未初始化的的指针一般让它指向0,看LV是否如此那?
关于前面两个,控件参阅和菜单参阅,由于未指向任何特定目标,所以他们的REFNUM的值是0,而下面的NUMER%&&&&&% REFNUM,由于控件自身现已存在了,因而它的值是存在的,这和C言语是相似的。
一个未指向任何目标的指针称作空指针,那么未指向任何目标的参阅也能够称作空参阅。
能够看出,未指向任何目标的参阅号REFNUM的值是0,LV判别它是一个空的或许不合法的REFNUM.
关于两个指向同一特定控件的REFERENCE,它们的REFNUM是相同的。
由此能够得出结论,在加载前面板后,控件目标现已实践存在,指向同一控件的参阅,他们的参阅号是相同的。得到控件的参阅号就能够操控控件的一切特点,如是否可见,闪耀等。