溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

結構體中函數(shù)指針與typedef關鍵用途(*函數(shù)指針)

發(fā)布時間:2020-06-25 19:56:13 來源:網(wǎng)絡 閱讀:1518 作者:jjyy程澤 欄目:編程語言
// 結構體函數(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),在這里,是為結構體中指針函數(shù)提供實現(xiàn)。在26行 
void printinfo(char *name,int age){
   
   printf("name = %s"", age =%d",name, age);
  }
  
  int main(){
   //創(chuàng)建一個person 結構體實例與結構體指針,并將結構體實例的地址傳給結構體指針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能夠提高代碼的跨平臺性與減少代碼書寫的作用,對于它,需要關注以下幾點,

(1)與一般數(shù)據(jù)類型

(2)與結構體

(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語言主要是一種結構化設計語言,但是,函數(shù)指針的使用能夠?qū)崿F(xiàn)分層設計,使其具有面向?qū)ο蟮奶卣鳌?/p>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI