数据类型:POINTER TO

您所在的位置:网站首页 plc的real是什么数据类型 数据类型:POINTER TO

数据类型:POINTER TO

2023-11-22 23:07| 来源: 网络整理| 查看: 265

数据类型:POINTER TO

指针在运行时存储对象的内存地址,例如变量或功能块实例。

指针声明的语法:

: POINTER TO | | ;

FUNCTION_BLOCK FB_Point VAR piNumber: POINTER TO INT; iNumber1: INT := 5; iNumber2: INT; END_VAR piNumber := ADR(iNumber1); // piNumber is assigned to address of iNumber1 iNumber2 := piNumber^; // value 5 of iNumber1 is assigned to variable iNumber2 by dereferencing of pointer piNumber

取消引用指针意味着获取指针指向的值。通过附加内容运算符来取消引用指针 ^ 指向指针标识符(例如:, piNumber^ 在上面的例子中)。要将对象的地址分配给指针,地址运算符 ADR 应用于对象: ADR(iNumber1).

在联机模式下,您可以使用 去参考 从指针跳转到被引用变量的声明位置。

重要

当指针指向 I/O 输入时,应用写访问。生成代码时,这会导致编译器警告 “”不是有效的分配目标.例子: pwInput := ADR(wInput);

如果您需要这种构造,则必须首先复制输入值(wInput) 到具有写访问权限的变量。

对指针的索引访问

CODESYS 允许索引访问 [] 类型变量 POINTER TO,以及数据类型 STRING 或者 WSTRING.

指针指向的数据也可以通过附加括号运算符来访问 [] 指向指针标识符(例如, piData[i])。指针的基本数据类型决定了索引组件的数据类型和大小。在这种情况下,对指针的索引访问是通过添加与索引相关的偏移量来算术完成的 i * SIZEOF() 到指针的地址。指针同时被隐式取消引用。

计算:

piData[i] := (piData + i * SIZEOF(INT))^;

那不是 不是:

piData[i] != (piData + i)^;

索引访问 STRING

当您将索引访问与类型的变量一起使用时 STRING,您将在索引表达式的偏移量处获得字符。结果是类型 BYTE.例如, sData[i] 返回字符串的第 i 个字符 sData 作为 SINT (ASCII)。

索引访问 WSTRING

当您将索引访问与类型的变量一起使用时 WSTRING,您将在索引表达式的偏移量处获得字符。结果是类型 WORD.例如, wsData[i] 将字符串的第 i 个字符返回为 INT (统一码)。

提示

引用和指针 BIT 变量是 无效的 声明,以及具有基本类型的数组元素 BIT.

减法指针

两个指针不同的结果是一个类型的值 DWORD,即使在 64 位平台上,当指针是 64 位指针时也是如此。

提示

使用引用提供了保证类型安全的优势。指针不是这种情况。

提示

可以在运行时通过隐式监控功能检查指针的内存访问 CheckPointer.



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3