定義一個(gè)變量,系統(tǒng)的確會(huì)分配一個(gè)內(nèi)存單元A來存儲(chǔ)這個(gè)變量。而A的固定地址已經(jīng)是物理地址了。不需要在分配一個(gè)來存儲(chǔ)該地址。
成都創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括尚志網(wǎng)站建設(shè)、尚志網(wǎng)站制作、尚志網(wǎng)頁制作以及尚志網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,尚志網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到尚志省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
該變量已經(jīng)實(shí)際存在在內(nèi)存物理地址上了。
函數(shù)的地址是在代碼空間中,在編譯時(shí)就分配好了。
代碼空間就是系統(tǒng)中存放你寫的代碼的地方,不同的行地址當(dāng)然就不一樣咯
不能,在一開始創(chuàng)建的時(shí)候計(jì)算機(jī)就會(huì)自動(dòng)分配給它特定的地址,況且有些地址還是不能訪問的。
你說的for,我看出來你已經(jīng)知道存在那些功能,但是還不知道某個(gè)功能是不是被實(shí)現(xiàn)了,下面又是一個(gè)例子:
FUN funs[16]={fun1,NULL,fun3};//假設(shè)我們知道最多也就16個(gè)功能,但是目前只有功能0和2被實(shí)現(xiàn),功能1和其他的3~15都還沒有實(shí)現(xiàn)
for(...)
{
int funCode;
...
if(funs[funCode]!=NULL)//如果不是NULL,說明對應(yīng)的功能號被實(shí)現(xiàn)了
funs[funCode](...)//調(diào)用
}
---------------------------------------------------------
樓主,C語言是不應(yīng)該干這件事的!
樓主你的需求實(shí)際上可以這樣描述:
1 怎樣才能根據(jù)輸入條件來調(diào)用不同的函數(shù)
2 條件和函數(shù)是一一對應(yīng)的,但是函數(shù)在哪是不確定的,例如可能是其他函數(shù)傳進(jìn)來的。
我舉個(gè)簡單例子來解決你的問題
typedef void (*FUN)(...);//參數(shù)列表和返回值自己填
//定義一些功能函數(shù)
void fun1(...)
{
printf("1\n");
}
void fun2(...)
{
printf("1\n");
}
....
//上面的注意了,參數(shù)列表和返回值要一樣的
FUN funs[]={fun1,fun2,...};//把函數(shù)的指針放進(jìn)數(shù)組,就像你C51的向量區(qū),存放了許多函數(shù)的地址,這里最終放的也是地址,只不過等程序編譯好了才知道是多少,
...//一堆代碼
int funCode;//用來存放計(jì)算出來的功能代碼,例如0表示fun1,1表示fun2
...//一堆超級復(fù)雜而且重要且不可逃避的代碼之后,funCode被設(shè)為了某個(gè)值,這個(gè)這個(gè)值實(shí)際上是我精心而且故意設(shè)計(jì)為理解簡單的小玩意,代表某個(gè)功能的代碼。
funs[funCode](...)//調(diào)用功能函數(shù)(知道funCode需要精心設(shè)計(jì)了吧,funCode為0就調(diào)用了fun1),當(dāng)然你也可以把funs傳到某個(gè)函數(shù),然他也像這樣使用傳進(jìn)去的函數(shù)。
不是的
1、實(shí)參在定義時(shí)就開辟存儲(chǔ)單元,這個(gè)存儲(chǔ)單元地址在整個(gè)程序中是固定不變的;
2、只有在函數(shù)調(diào)用時(shí)才給形參開辟存儲(chǔ)空間,如果是值傳遞,則將實(shí)參的值賦給形參,如果是地址傳遞,則為形參開辟一個(gè)臨時(shí)指針變量,然后把實(shí)參的地址傳送給形參
3、函數(shù)執(zhí)行完畢返回主程序時(shí),釋放形參所占的存儲(chǔ)單元。
網(wǎng)站標(biāo)題:c語言函數(shù)地址固定 c語言自定義函數(shù)的位置
鏈接分享:http://m.rwnh.cn/article30/hiiepo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、標(biāo)簽優(yōu)化、域名注冊、虛擬主機(jī)、網(wǎng)站營銷、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)