回复:应用探讨——西门子指针编程使用探讨

youhm

  • 帖子

    4924
  • 精华

    81
  • 被关注

    51

论坛等级:至圣

注册时间:2008-06-28

普通 普通 如何晋级?

发布于 2011-12-22 10:30:50

141楼

quote:以下是引用火麒麟在2011-12-22 09:31:33的发言:
quote:以下是引用youhm在2011-12-19 23:07:39的发言:
我想是编译的问题, LAR1 P##VARIABLE这个编译可能要求P##VARIABLE一定是个确定的地址才能通过编译,如果是FC的参数,只有临时变量地址是确定的,其它参数会因实参不同而变。

在FB中的IN/OUT中定义ARRAY,POINTER,ANY,变量地址也不是确定的,也要通过实参来确定的,但是就可以。youhm大侠这里的地址指的是变量的实际地址还是指向变量的指针地址呢?

是指的变量的地址
在FB里IN_OUT使用复杂数据类型情况不一样,当在IN_OUT里定义ARRAY、STRUCT、UDT等类型的变量,会发现这些变量所占用的空间是6个字节,也就是通过指针来访问这些变量的实参,而我们使用LAR1 P#*得到的是这个指针的地址,所以这个地址是在背景数据块里是确定的地址,而Pointer和Any类型则不用说了,是把实参的值直接拷贝到背景数据块里。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54768条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。