0
点赞
收藏
分享

微信扫一扫

#yyds干货盘点#ABAP指针

​一、什么是ABAP指针​

在ABAP里面,field symbol就相当于c语言的指针。如果你定义并且分配了相应的结构或者变量给它,其实它就指向这个结构或者变量的地址,​如果修改了field symbol的值,则相应结构或者变量的值也随之更改。


​二、如何定义指针​

基本形式:​FIELD-SYMBOLS.

附加信息:

  1. … TYPE :定义一个数据类型,然后定义指针
  2. … TYPE REF TO :指针指向类或者接口
  3. … TYPE LINE OF :指针内表的行项目
  4. … LIKE :指针为数据库表类型
  5. … LIKE LINE OF :指针类型为数据库表的行项目


​三、​如何分配指针​

(1). ASSIGN f TO .:分配一个指针,包括以下几种类型:

  1. … CASTING … :主要对unicode系统地操作
    1a. … CASTING
    1b. … CASTING TYPE type
    1c. … CASTING … DECIMALS dec
    1d. … CASTING LIKE f1
  2. … TYPE type :直接指定类型
  3. … DECIMALS dec :指定小数点位数
  4. … RANGE range:指定范围

(2). 分配结构中的某个字段给指针
          ASSIGN COMPONENT idx OF STRUCTURE struc TO .
          ASSIGN COMPONENT name OF STRUCTURE struc TO .
(3). 分配类的方法给指针
         ASSIGN dref->* TO .
(4). 从f开始,是f的n倍长之后的内容分配给指针
         ASSIGN f INCREMENT n TO .
(5). 分配局部变量给指针
         ASSIGN LOCAL COPY
         5a. ASSIGN LOCAL COPY OF f TO .
         5b. ASSIGN LOCAL COPY OF INITIAL f TO .
         5c. ASSIGN LOCAL COPY OF INITIAL LINE OF itab TO .
         5d. ASSIGN LOCAL COPY OF MAIN TABLE FIELD (f) TO .
(6). ASSIGN dynamicJ:动态分配指针
         6a. ASSIGN (f) TO .
         6b. ASSIGN oref->(f) TO .
         6c. ASSIGN (f1)=>(f2) TO .
         6d. ASSIGN TABLE FIELD (f) TO .
         6e. ASSIGN LOCAL COPY OF MAIN TABLE FIELD (f) TO .
         6f. ASSIGN LOCAL COPY OF … (f) TO .


四、​如何取消分配​

        ​UNASSIGN .

举报

相关推荐

0 条评论