typedef 複雜函式指標

2022-02-05 08:58:25 字數 827 閱讀 3003

下面是三個變數的宣告,我想使用typedef分別給它們定義乙個別名,請問該如何做?

>1:int *(*a[5])(int, char*);

>2:void (*b[10]) (void (*)());

>3. doube(*)() (*pa)[9];

答案與分析:

對複雜變數建立乙個型別別名的方法很簡單,你只要在傳統的變數宣告表示式裡用型別名替代變數名,然後把關鍵字typedef加在該語句的開頭就行了。

>1:int *(*a[5])(int, char*);

//pfun是我們建的乙個型別別名

typedef int *(*pfun)(int, char*);

//使用定義的新型別來宣告物件,等價於int* (*a[5])(int, char*);

pfun a[5];

a是乙個包含5個元素的陣列,陣列的元素是函式指標,該函式指標所指函式的的返回值是指向int型別的指標,輸入引數有兩個,第乙個是int,第二個是char*

>2:void (*b[10]) (void (*)());

//首先為上面表示式紅色部分宣告乙個新型別

typedef void (*pfunparam)();

//整體宣告乙個新型別

typedef void (*pfun)(pfunparam);

//使用定義的新型別來宣告物件,等價於void (*b[10]) (void (*)());

pfun b[10];

b是乙個含有10個元素的陣列,每個元素都是乙個函式指標,該函式指標所指的函式的返回值為void,輸入引數為另乙個函式指標,這個函式指標沒有輸入引數,返回值為void

typedef 函式指標

關於c 中函式指標的使用 包含對typedef用法的討論 一 簡單的函式指標的應用。形式1 返回型別 函式名 參數列 char pfun int char glfun int a void main 第一行定義了乙個指標變數pfun。首先我們根據前面提到的 形式1 認識到它是乙個指向某種函式的指標,...

typedef 函式指標

形式1 返回型別 函式名 參數列 cpp view plain copy print?char pfun int char glfun int a void main char pfun int char glfun int a void main 第一行定義了乙個指標變數pfun。首先我們根據前面...

typedef函式指標

typedef int myfun int,int 這種用法一般用在給函式定義別名的時候 上面的例子定義myfun 是乙個函式指標,函式型別是帶兩個int 引數,返回乙個int 在分析這種形式的定義的時候可以用下面的方法 先去掉typedef 和別名,剩下的就是原變數的型別.去掉typedef和my...