二维码

[基础语法] ABAP字段符号ASSIGN与的内存地址关系

Twilight发表于 2016-09-30 15:45zlzt 最后回复于 2019-11-06 10:32 [复制链接] 3433 2

assign1.jpg
以后,操作field和操作<fs>就完全相同,都是对同一块内存区域的操作。

在语句 ASSIGN (field) TO <fs>. 执行之前
assign2.jpg

在语句 ASSIGN (field) TO <fs>. 执行之后
assign3.jpg

以后,在程序prog中操作var和在prg1中操作<fs>就完全相同,都是对同一块内存区域的操作。
如果(PROG)VAR这个变量不存在,ASSIGN语句之后<fs>仍为UNASSIGNED,一旦对它进行读取、赋值等操作,就会出现GETWA_NO_ASSIGNED运行时错误。

注:FIELD-SYMBOLS字段符号是一种dereference(解引用),不是reference(引用),ABAP中type ref to定义的才是reference(引用)。

引用其实就是引用该变量的地址,“解”就是把该地址对应的东西解开,解出来,就像打开一个包裹一样,那就是该变量的值了,所以称为“解引用”。
回复

使用道具 举报

z3765295
强调一下,技术来源于:华亭慧剑
回复 支持 反对

使用道具 举报

zlzt
引用的话要先取地址后取值 ,解引用是直接对值做操作
回复 支持 反对

使用道具 举报

快速回帖

本版积分规则
您需要登录后才可以回帖 登录 | 注册有礼

快速回复 返回顶部 返回列表