Import 和Extern的區別

2021-06-20 05:31:52 字數 924 閱讀 3563

import

語法格式:

import 符號

import 偽操作告訴編譯器當前的符號不是在本原始檔中定義的,而是在其他原始檔中定義的,在本原始檔中可能引用該符號,而且不論本原始檔是否實際引用該符號,該符號均會被加入到本原始檔的符號表中。(與下面的extern的區別之處)

符號在程式中區分大小寫, [weak] 指定這個選項後,如果符號在所有的原始檔中都沒有定義,編譯器也不會產生任何錯誤資訊,同時編譯器也不會到當前沒有被include進來的庫中去查詢該符號。

使用import偽操作宣告乙個符號是在其他原始檔中定義的。如果聯結器在連線處理時不能解析該符號,而import偽操作中沒有指定 [weak]選項,則聯結器會報告錯誤。如果聯結器在連線處理時不能解析該符號,而import偽操作中指定了[weak]選項,則聯結器將不會報告錯誤,而是進行下面的操作:

1) 如果該符號被b或者bl指令引用,則該符號被設定成下一條指令的位址,該b或者bl指令相當於一條nop指令

2) 其他情況下該符號被設定為0.

使用示例:

area init , code , readonly

import main ;通知編譯器當前檔案要引用標號main,但main 在其他原始檔中定義……

end

extern

語法格式:

extern 符號

extern 偽操作告訴編譯器當前的符號不是在本原始檔中定義的,而是在其他原始檔中定義的,在本原始檔中可能引用該符號。如果本原始檔沒有實際引用該符號,該符號將不會被加入到本原始檔的符號表中。

注:與import的不同之處

使用示例:

area init , code , readonly

extern main ;通知編譯器當前檔案要引用標號main,但main 在其他原始檔中定義……

end

python模組和類在import上的區別

1 類屬於模組的一部分。當我們要建立乙個類時,通常我們新建乙個py檔案,例如新建立cn.py,這個cn便成為我們的模組。2 然後在cn裡面建立自己的類 python created on 2011 11 1 author dudong0726 class person classdocs count...

Es6中的export和import的區別

export可以使import一次匯入多個,如下 匯出 export str hello world export function f 匯入 import str,f from demo1.js 需要把匯入的物件裝進 括號 裡 或者分開單獨寫也可以 import str from demo1.js...

include與import引用模版的區別

區別 1。import需要先引用template,然後再使用template include不需要預先引用,直接在需要的地方引入模版即可。2。include模式非常簡單,就是簡單的 替換,不存在作用域,也不能像import一樣使用data傳遞變數 3 import存在作用域的概念。即只會import...