ABAP的include關鍵字,Java的import, C的include和C4C ABSL 的i
使用關鍵字重復引入一個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