1. 程式人生 > >ABAP的include關鍵字,Java的import, C的include和C4C ABSL 的i

ABAP的include關鍵字,Java的import, C的include和C4C ABSL 的i

Java C++ JavaScript ABAP SAP

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的原創技術文章,請關註公眾號"汪子熙"或者掃描下面二維碼:

技術分享圖片

技術分享圖片

ABAP的include關鍵字,Java的import, C的include和C4C ABSL 的i