下面是三個變數的宣告,我想使用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...