写点什么

ABAP 的 include 关键字,Java 的 import, C 的 include 和 C4C ABSL 的 import 比较

用户头像
Jerry Wang
关注
发布于: 2021 年 05 月 23 日
ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较

ABAP

使用关键字重复引入一个 include program,会报 syntax error:



原因是因为 ABAP 对 include 这个关键字的实现和其他编程语言有点不一样,在激活时简单地把被 include 的 program 的全部源代码替换原程序里 INCLUDE incl 这一行,所以重复引入一个 include program 会报错。



值得一提的是,ABAP report 悄悄得 include 了很多标准的 program,比如<sysini>.



因此如果再次重复引入,同样的会遇到语法错误。


import in Java

Java 的 import 和 ABAP 的 include 关键字实现的效果不一样,在 Java 里使用 import 引入包名可以让程序猿少打些字,比如比较下图第 13 行和第 15 行的写法,明显前者要简洁一些。



因为 import 引入的是包名而不会像 ABAP 那样将包的源代码引入到使用了 import 的源程序,因此可以重复 import。只是将 Java 编译器生成的.class 反编译之后,会发现编译器自动将冗余的 import 移除,且自动引入了新的包 java.io.printStream:


include in C

谭浩强老师的《C 程序设计》一书中提到,编译器预处理时,要对 #include 命令进行"文件包含处理":将被 include 的头文件的全部内容复制到 #include 处。


那么 C 语言的 include 类似 ABAP 的关键字 include。


例子:a.c 里 include 标准的<stdio.h>:



这个头文件的位置: /usr/include



里面是一些宏定义和函数声明:



b.c 里没有 include 这个头文件:



所以 b.c 编译生成的执行文件尺寸小于 a.c:


import in C4C ABSL

同 Java 的 import,不会对后台生成的 ABAP 代码有任何影响。



要获取更多 Jerry 的原创技术文章,请关注公众号"汪子熙":



发布于: 2021 年 05 月 23 日阅读数: 8
用户头像

Jerry Wang

关注

个人微信公众号:汪子熙 2017.12.03 加入

SAP成都研究院开发专家,SAP社区导师,SAP中国技术大使。

评论

发布
暂无评论
ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较