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,比如.

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

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的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:


ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较的更多相关文章
- ThinkPHP import 类库导入 include PHP文件
ThinkPHP 模拟了 Java 的类库导入机制,统一采用 import 方法进行类文件的加载.import 方法是 ThinkPHP 内建的类库和文件导入方法,提供了方便和灵活的文件导入机制,完全 ...
- ABAP SICF服务和Java Servlet的比较
In my opinion ABAP ICF handler and Java Servlet play the same role in enhancement which enables your ...
- 在ABAP里模拟实现Java Spring的依赖注入
Dependency Injection- 依赖注入,在Java Spring框架中有着广泛地应用.通过依赖注入,我们不必在应用代码里繁琐地初始化依赖的资源,非常方便. 那么ABAP能否从语言层面上也 ...
- link和@import引入css 区别,不建议使用@import
众多周知,有两种方法可以在页面中导入样式文件. <link href="a.css" rel="stylesheet"> <style> ...
- Java的native关键字---JAVA下调用其他语言的关键词
今天研究Java基础类库,Object类的时候,发现了一个关键字:native 咦?这是个什么东东?它认识我,我可不认识它! 嘿嘿,没关系,baidu一下. java native关键字 一. 什么是 ...
- -1-1 java 基础语法 java关键字 java 注释 常量 语句 运算符 函数 数组定义
Java语言基础组成 关键字 标识符 注释 常量和变量 运算符 语句 函数 数组 关键字 定义:被Java语言赋予了特殊含义的单词 特点:关键字中所有字母都为小写 用于定义数据类型的关键字 class ...
- Java关键字-----------------java中synchronized关键字的用法
在java编程中,经常需要用到同步,而用得最多的也许是synchronized关键字了,下面看看这个关键字的用法. 因为synchronized关键字涉及到锁的概念,所以先来了解一些相关的锁知识. j ...
- django中路由系统和视图的对应关系(值的传递)-->主要内容(位置参数、关键字参数、额外参数、include分组[urls的分发]、命名分组、反向解析、APPEND_SLASH)
路由系统也就是 urls.py文件,视图就是 views.py文件 路由系统里面要注意的事项 urlpatterns中的元素按照书写顺序从上往下逐一匹配正则表达式,一旦匹配成功则不再继续. 若要从UR ...
- Java学习(匿名对象、内部类、包、import、代码块)
一.匿名对象 概念:匿名对象是指在创建对象时,只有创建的语句,却没有把对象地址值赋给某个变量. 特点: (1)匿名对象直接使用,没有变量名.当做形参使用. new Person().name=&quo ...
随机推荐
- asp.net模板页实现类似jquery中document.ready
模板页先判断是否有方法DocumentReady,有的话就调用 1.模板页 <script type="text/javascript" language="jav ...
- java——java只有值传递
真的只有值传递! java中对象作为参数传递给一个方法,到底是值传递,还是引用传递? 答:值传递 这里说的很清楚了:https://www.cnblogs.com/zhouxiansheng/p/39 ...
- JOIN 和 NULL
NULL值得数据出现在数据库发展的最初阶段的确给开发和使用者带来了很大的便利,这是因为它为我们节省了太多的磁盘空间,而且在那个年代磁盘是相当昂贵的.但是随着科技的发展,硬件系统的改进突飞猛进,NULL ...
- vue中methods函数调用methods函数写法
export default { data() { return { hello:"你好" } }, methods:{ open(that) { that.hello = &qu ...
- 人工智能和机器学习 AI&ML howto
我关心的AI.ML的分支领域: 我的博客:Deep Learning 和 Knowledge Graph howto (有关DL&KG的资料都在这里) https://www.cnblogs. ...
- 用python处理时间、utf8文本、正则匹配、序列化、目录路径搜索、xml解析
python 处理时间 import time import re now = time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime()) ...
- Easy Touch 摇感控制人物移动
Easy Touch 摇感控制人物移动 public class joystick : MonoBehaviour { public float Speed; //定义速度 p ...
- 什么是JavaScript Souce Map
第一部分 我们经常可以看到后缀名为.map的文件,比如我们下载得到bootstrap的css文件,如下所示: 不难理解bootstrap.css. bootstrap.min.css.等这些常规的代码 ...
- Cloudera Manager卸载笔记
1.通过管理平台分别停止组件服务和Cloudera Management Service 2.通过管理平台注销并移除Parcles (在控制台注销并移除,无论是安装的Parcles还是未安装的Parc ...
- 117、python MySQLdb在windows环境下的快速安装、问题解决方式
使用Python访问MySQL,需要一系列安装 Linux下MySQLdb安装见 Python MySQLdb在Linux下的快速安装 http://blog.csdn.NET/wklken/arti ...