在我的项目中,我有一个类似的类型:
TYPE myDataStruct:STRUCT A:UINT; B:WORD; C:REAL; D:Custom_Obj;END_STRUCTEND_TYPE我需要保持这种类型的数组持久…
相当于什么 new 用其他语言?
new
这类似于
VAR EmptyArray : ARRAY[0..20] OF myDataStruct; END_VAR
如果要使用默认值预先填充它
VAR EmptyArray : ARRAY[0..20] OF myDataStruct := [ (A := 100, B := 200, �� := 0.0, D := ???), (A := 34, B := 45, �� := 0.1, D := ???), ..... etc ]; END_VAR
对于CoDeSys 2.3删除 [ 和 ] 。
[
]
你需要了解的是什么 EmptyArray 不是您需要的数据原型,但已经初始化变量。
EmptyArray
没有办法初始化它 "x = new struct()" 办法。您也无法在代码中分配整个数组 myarray = [1, 2, 3] etc , 我所知道的。
"x = new struct()"
myarray = [1, 2, 3] etc
如果您只想将其设置为空,其值为0,''等,那么我将使用两种方法:
的 1.使用 MEMSET 用于将所有字节设置为0的函数 强>
MEMSET
链接到在线帮助
//Something like MemSet( pbyBuffer := ADR(myarray), //Address of the variable byValue := 0, //Byte that address is filled with dwSize := SIZEOF(myarray) //How many bytes? (variable size) )
的 2.创建一个虚拟变量并将其分配给 myarray 强>
myarray
变量始终初始化为零,因此EmptyArray值均为0 /空等。
VAR EmptyArray : ARRAY[0..20] OF myDataStruct; END_VAR //In the code myarray := EmptyArray;
我希望我能正确理解你的问题。