1. 变量声明及调用技巧
1.12. BYTE指针怎么用呢,比如定义了一个BYTE数组,然后定义一个指针指向数组头,那如何使指针指向下一个元素?
用SIZEOF()
PROGRAM MAIN
VAR
s1:STRING:='hello';
p1:POINTER TO BYTE;
c1:BYTE;
END_VAR
p1:=ADR(s1)+SIZEOF(c1)*1;
c1:=p1^;
对于TwinCAT2软件中的指针偏移按教程可以直接使用:
注意TwinCAT 2中使用DWORD数据类型进行偏移得逻辑或者库文件,转换或者导入TwinCAT 3使用会导致
Cannot convert type 'POINTER TO REAL' to type 'DWORD'
因为TwinCAT 3指针得数据长度是64bit,类型需要使用LWORD进行偏移,以下是运行时的测试效果: