// 結(jié)構(gòu)體函數(shù)指針。
#include<stdio.h>
//為了代碼的移植考慮,一般使用typedef定義函數(shù)指針類 ,另一個好處是,減少代碼的書寫量。
typedef void (*shout)(char *name,int age);
typedef struct {
//用指針來存儲字符串
char *name;
int age ;
shout personinfo;
}person;
//類似于c++中類方法的實現(xiàn),在這里,是為結(jié)構(gòu)體中指針函數(shù)提供實現(xiàn)。在26行
void printinfo(char *name,int age){
printf("name = %s"", age =%d",name, age);
}
int main(){
//創(chuàng)建一個person 結(jié)構(gòu)體實例與結(jié)構(gòu)體指針,并將結(jié)構(gòu)體實例的地址傳給結(jié)構(gòu)體指針p;
person p1;
person *p = &p1;
p->name = "chengze";
p->age = 12 ;
//賦值函數(shù)兩種都可以。
//p->personinfo = printinfo;
p->personinfo = &printinfo;
p1.personinfo(p->name,p->age);
//printf("這樣也可以。。。\n");
return 0;
}補充:typedef能夠提高代碼的跨平臺性與減少代碼書寫的作用,對于它,需要關(guān)注以下幾點,

(1)與一般數(shù)據(jù)類型
(2)與結(jié)構(gòu)體
(3)與#define的區(qū)別
(4)與指針中的函數(shù)
(5)與const共同
思考:1、函數(shù)指針與指針函數(shù):
(1)函數(shù)指針本質(zhì)是函數(shù)形式的指針;
(2)指針函數(shù),本質(zhì)是函數(shù),其返回值是指針,函數(shù)還是像普通函數(shù)一樣調(diào)用;
2、函數(shù)指針在C中的地位,我們都知道,C語言主要是一種結(jié)構(gòu)化設(shè)計語言,但是,函數(shù)指針的使用能夠?qū)崿F(xiàn)分層設(shè)計,使其具有面向?qū)ο蟮奶卣鳌?/p>
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
文章名稱:結(jié)構(gòu)體中函數(shù)指針與typedef關(guān)鍵用途(*函數(shù)指針)-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://www.chinadenli.net/article12/djdddc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、商城網(wǎng)站、Google、軟件開發(fā)、虛擬主機、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容