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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3132|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

export/import extern 三者之間的區(qū)別

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:105323 發(fā)表于 2016-2-24 17:55 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
在C與匯編混合編程中:
IMPORT 符號(hào) {[WEAK]}​

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


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

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

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91n成人 | 国产a级毛毛片 | 国产亚洲一区二区三区在线 | 欧美日韩亚洲一区 | 紧缚调教一区二区三区视频 | 黄色网络在线观看 | 在线免费观看黄色 | 日韩在线 | 中文字幕一区二区三区四区五区 | www国产成人免费观看视频,深夜成人网 | 成人在线视频网址 | 国产精品久久久久国产a级 欧美日本韩国一区二区 | 欧美人妖网站 | 在线色网 | 日本a视频| 91国自视频| 草草精品 | 一区二区三区亚洲 | 国产一级片一区二区 | 中文字幕一区在线 | 中国一级特黄真人毛片 | 天天夜碰日日摸日日澡 | 中文字幕在线观看一区 | 亚洲男人网 | 日韩精品在线视频 | 久久久精品网站 | 亚洲免费观看视频 | 一级无毛片 | 国产一区二区不卡 | 日韩网站在线观看 | 国产a区| 色婷婷亚洲一区二区三区 | 亚洲欧洲精品一区 | 色姑娘av| 一区二区在线视频 | 成人av免费| 日韩成人精品一区 | 成年人网站国产 | 精品国产一区二区国模嫣然 | 国产精品久久久久久影视 | 午夜网|