// 結(jié)構(gòu)體函數(shù)指針。 #include//為了代碼的移植考慮,一般使用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)注以下幾點,
創(chuàng)新互聯(lián)公司提供網(wǎng)站制作、成都網(wǎng)站制作、網(wǎng)頁設(shè)計,成都品牌網(wǎng)站建設(shè),1元廣告等致力于企業(yè)網(wǎng)站建設(shè)與公司網(wǎng)站制作,10年的網(wǎng)站開發(fā)和建站經(jīng)驗,助力企業(yè)信息化建設(shè),成功案例突破上千多家,是您實現(xiàn)網(wǎng)站建設(shè)的好選擇.(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è)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。