久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3074|回復: 0
打印 上一主題 下一主題
收起左側

export/import extern 三者之間的區別

[復制鏈接]
跳轉到指定樓層
樓主
ID:105323 發表于 2016-2-24 17:55 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
在C與匯編混合編程中:
IMPORT 符號 {[WEAK]}​

在匯編中,該偽操作指令的作用是告訴編譯器,該符號是在外源文件中定義的,​這一點跟extern的作用是一樣的,但與extern不同的是不論該符號是否在本源文件中被用到,編譯器均將該符號添加到本文件的符號表中。如果在符號后添加了該聲明 {[WEAK]}​,則該符號即使在外源文件中沒有被找到,編譯器也不會報錯,否則就會報錯。
EXTERN符號 {[WEAK]} [size=17.27272605896px]​ 在匯編中,該符號是在外源文件中定義的,在本源文件中可能被用到,如果沒用到,編譯器就不會添加到本源文件的符號表中;{[WEAK]} 作用同上。
EXPORT   符號  
在匯編中,對于本源文件中的一個函數,通過EXPORT給這個函數定義一個新的函數的入口,包括名字,地址等,供外面文件(如C源文件)調用。這個函數會被放到kernelimage的__ksymtabsection中,當用到這個函數的模塊在runtime時被加載的時候,loader就會從__ksymtabsection解析這個函數。


所以從源文件的角度講,這就涉及到內部函數與外部函數的問題,在匯編中以IMPORT EXPORT EXTERN來加以聲明,告知編譯器。IMPORT的意思是該函數或符號是外源文件定義的,在本文件中可能加以引用。EXPORT的意思是該函數或符號​重新定義一個新的函數入口,包括名稱和地址,以供外源文件引用。
另:匯編語言的指令不區分大小寫,但是函數,符號,字符串等還是區分大小寫的;​
在C語言中,也有內部函數與外部函數的區別,格式分別如下:
static 函數類型聲明  函數名(形參表);
static int  function(int a,int b); 這是通過static定義了一個內部函數,對外源文件進行屏蔽,尤其是在多人分工編寫程序時,即使名字一樣,也不會發生沖突,增加了程序的可靠性。
同理,
extern​ int function(int a,int b);就可以為其他源文件調用,如果省略extern,則默認為外部函數。
這是從程序源文件之間的角度來講,分為內部變量與外部變量、內部函數與外部函數;
那么借此,在從源文件內部的角度來表一表,在某一個源文件中,變量的分類:​
在一個源文件內,從作用域的角度講:變量分為全局變量局部變量​;從變量的存儲方式上講,又分為靜態存儲方式動態存儲方式,靜態存儲方式分配的存儲空間是固定的,在整個程序運行期間一直占有該內存空間,不釋放。動態則是動態分配的,其生命周期結束后,就會是釋放,所以根據作用域與存儲方式主要分為以下三種變量:靜態全局變量靜態局部變量局部變量,這里主要強調一下靜態局部變量,其他兩種都比較好理解,靜態局部變量就是讓某子函數的局部變量的存儲單元固定,不釋放,該變量初始化一次后,當再次運行到此函數時,該變量的初始化語句跳過不再執行,該變量依然保持著上一次程序運行時的最后一次的賦值,從這個角度叫,該函數不具備可重入性。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久热精品在线观看视频 | 日韩久久综合 | 国产视频精品免费 | 91av在线免费播放 | 成人av电影免费在线观看 | 免费在线日韩 | 99热在这里只有精品 | 成人免费视频 | 亚洲 欧美 日韩在线 | 国内精品在线视频 | 羞羞网站免费 | 新超碰97 | 台湾佬伊人 | 日韩成人av在线 | 欧洲精品久久久久毛片完整版 | 拍真实国产伦偷精品 | 亚洲一二三区精品 | 91精品一区 | 国产乱码精品一区二区三区中文 | 国产精品久久久久久影视 | 国产在线精品一区二区三区 | 久久精品国产一区 | 亚洲视频在线看 | 欧美一级在线观看 | 国产成人精品一区二区三区四区 | 欧美精品成人一区二区三区四区 | 成人免费视频观看视频 | 91精品成人久久 | 97人人澡人人爽91综合色 | 一区中文| 欧美一区精品 | 亚洲高清在线 | 国产第一区二区 | 免费成人av网站 | 中文字幕一区二区三区四区不卡 | 久久久久久久久久久久久九 | 成人h动漫精品一区二区器材 | 国产欧美在线播放 | 日韩二三区| 黄色免费网站在线看 | www.国产精|