定义语法

DEFINE macro.

... &1 ... &9 ...

END-OF-DEFINITION.

调用语法:

macro [p1 p2 ... ].

最多时能有9参数

例子:

DATA: result TYPE i,

n1 TYPE i VALUE 5,

n2 TYPE i VALUE 6.

DEFINE operation.

result = &1 &2 &3.  *&1 &2 &3是参数

output &1 &2 &3 result.

END-OF-DEFINITION. * operation是定义的宏的名称

DEFINE output.

write: / 'The result of &1 &2 &3 is', &4.

END-OF-DEFINITION.

operation 4 + 3.

operation 2 ** 7.

operation n2 - n1.

Notes:

1,与子程序不同的是,宏通过&N接收传入参数,不需要定义接收参数的类型及格式。

宏只能被本程序中定义于宏后面的语句所调用,宏一般定义于程序最开始,而子程序则可以放在程序中的任意位置。

2, 以前,若叙述的宏在当前程序中未定义,只会在用TYPE-POOLS语句加载的的Type groups中进行搜索。

但现在会在所有可用的Type groups中搜索。

3,若ABAP编译器在当前程式或可用的Type groups中都未搜到该叙述的宏,那么它会搜索TRMAC表。

TRMAC表中的宏跟Type groups中命名规则不同,therefore nothing should be hidden。

ABAP宏--Macros的更多相关文章

  1. 【ABAP系列】SAP ABAP 宏的简单使用

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 宏的简单使用 ...

  2. ABAP宏的调试

    我们都知道高级语言宏一般是无法调试的.但是ABAP的宏例外. 比如我写了下面一段宏,名为insert_table. 执行这段代码,调试器会在第23行停下来. ABAP调试器里有个工具可以用于宏的调试, ...

  3. 了解Scala 宏

    前情回顾 了解Scala反射介绍了反射的基本概念以及运行时反射的用法, 同时简单的介绍了一下编译原理知识, 其中我感觉最为绕的地方, 就属泛型的几种使用方式了. 而最抽象的概念, 就是对于符号和抽象树 ...

  4. 一篇入门 — Scala 宏

    前情回顾 上一节, 我简单的说了一下反射的基本概念以及运行时反射的用法, 同时简单的介绍了一下编译原理知识, 其中我感觉最为绕的地方, 就属泛型的几种使用方式了. 而最抽象的概念, 就是对于符号和抽象 ...

  5. Jerry的ABAP原创技术文章合集

    我之前发过三篇和ABAP相关的文章: 1. Jerry的ABAP, Java和JavaScript乱炖 这篇文章包含我多年来在SAP成都研究院使用ABAP, Java和JavaScript工作过程中的 ...

  6. LISTVIEW 消息 结构 宏

    如果是要画的话,用CreateWindowEx创建 指定 WC_LISTVIEW window class 关于其消息如下: LVM_APPROXIMATEVIEWRECT  LVM_ARRANGE  ...

  7. [Flask]jinja2模板-宏的使用

    定义宏: macros.html <!DOCTYPE html> <html lang="en"> <head> <meta charse ...

  8. 痞子衡嵌入式:IAR内部C-SPY调试组件配套宏文件(.mac)用法介绍

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是IAR内部C-SPY调试组件配套宏文件(.mac)用法. 痞子衡之前写过一篇 <JLink Script文件基础及其在IAR下调用 ...

  9. UE4 中Struct Emum 类型的定义方式 笔记

    UE4 基础,但是不经常用总是忘记,做个笔记加深记忆: 图方便就随便贴一个项目中的STRUCT和 Enum 的.h 文件 Note:虽然USTRUCT可以定义函数,但是不能加UFUNCTION 标签喔 ...

随机推荐

  1. WordPress基础:小工具的使用

    通过外观->小工具对挂件区域的内容进行调整 比如添加个日历模块 保存后前台就会显示出来 如果不需要,反过来,把模块拖到左边就可以了.

  2. Foreach遍历

    前天在项目中遇到一个问题,foreach遍历过程中修改responses中的对象,其中responses的类型:IEnumerable<Order>,代码如下: foreach (Orde ...

  3. centos7优化内核参数详解

    cat /etc/sysctl.conf #CTCDN系统优化参数 #关闭ipv6 net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.d ...

  4. LuaSrcDiet工具介绍(lua源码处理软件)

    Diet Food Diet (nutrition), the sum of the food consumed by an organism or group Dieting, the delibe ...

  5. 使用MapReduce实现join操作

     在关系型数据库中,要实现join操作是非常方便的,通过sql定义的join原语就可以实现.在hdfs存储的海量数据中,要实现join操作,可以通过HiveQL很方便地实现.不过HiveQL也是转化成 ...

  6. Elasticsearch之client源码简要分析

    问题 让我们带着问题去学习,效率会更高 1  es集群只配置一个节点,client是否能够自动发现集群中的所有节点?是如何发现的? 2  es client如何做到负载均衡? 3  一个es node ...

  7. c语言第2次作业

  8. c++的重载运算符

    c++中允许重载运算符: 这是我辛苦的结果 #include"iostream"using namespace std;class aaa{ int x;public: aaa() ...

  9. linux scp 远程复制文件

    1.从本机复制文件到远程scp 文件名 远程计算机用户名@远程计算机的ip:远程计算机存放该文件的路径2.从远程复制文件到本机:scp 远程计算机用户名@远程计算机ip:文件名 存放该文件的本机路径3 ...

  10. Nodejs&express+mongodb完成简单用户登录(即Nodejs入门)

    刚了解nodejs,发现nodejs配置起来不复杂,但也有很多需要注意的地方,今天就记录一下,以后也可拿出来看看. 要完成这个简单的示例,从零开始,走三步就行了. 一.搭建开发环境 二.创建项目(ex ...