欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

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

QQ登錄

只需一步,快速開始

搜索
查看: 3127|回復(fù): 0
收起左側(cè)

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

[復(fù)制鏈接]
ID:105323 發(fā)表于 2016-2-24 17:55 | 顯示全部樓層 |閱讀模式
在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ù)不具備可重入性。

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表