typedef 的幾種用法

2022-04-04 09:57:39 字數 620 閱讀 4415

函式指標:

看這樣乙個宣告:void *(*)(void *)(void*(*act[3])(void *))(void *(*)(void *), void *);

暈了沒?

用typedef分解下:

原宣告等價於:

typedef void *(*func)(void *);

func (func[3])(func, void  *);

即act是乙個陣列,該陣列有3函式指標的成員,每個成員作為函式指標,返回乙個void *(*)(void *)型的函式指標,同時每個成員作為函式指標其引數有兩個,第乙個引數的型別是void *(*)(void *)型的函式指標,第2個引數的型別是void *;

分解訣竅: 先找名字,再右,後左,右看遇到是陣列,遇到()是函式,左看遇到*是指標,最後再細心讓括號配對就行;

注:關於複雜宣告, k&c的《the c programming language》第5章指標與陣列,專門寫了個dcl遞迴下降語法分析程式來分解複雜宣告,很是有趣;

結構體typedef struct node_t *link;

等價於:

typedef struct node_t *link;

struct node_t;

typedef的幾種用法

例如 typedef int array 2 描述 array等價於 int 2 定義 array a宣告等價於int a 2 宣告 例如 typedef int pointer 描述 pointer等價於 int 定義 pointer p宣告等價於int a宣告 描述 c把函式名字當做函式的首位址...

c語言中typedef的幾種用法

幾種用法 1.常規變數型別定義 例如 typedef unsigned char uchar 描述 uchar等價於unsigned char型別定義 uchar c宣告等於unsigned char c宣告 2.陣列型別定義 例如 typedef int array 2 描述 array等價於 i...

c語言中typedef的幾種用法

幾種用法 1.常規變數型別定義 例如 typedef unsigned char uchar 描述 uchar等價於unsigned char型別定義 uchar c宣告等於unsigned char c宣告 2.陣列型別定義 例如 typedef int array 2 描述 array等價於 i...