C 函式指標和typedef

2021-10-20 18:43:00 字數 1011 閱讀 9927

void(*

signal

(int signum,

void

(* handler)

(int))

)(int)

;// 等價於下面兩行

typedef

void

(*sighandler_t)

(int);

sighandler_t signal

(int signum,sighandler_t handler)

1、 signal(int signum,void(* handler)(int))這是乙個函式,函式名為signal

(1) 第乙個形參:int signum,是乙個整形變數;

(2) 第二個形參:void(*handler)(int),這是乙個函式指標,指向:返回值為void型,且帶乙個int型的形參的函式。

也就是說,這個形參,是乙個指標,或者說是乙個位址,可以理解為這個形參是函式名,因為函式名是函式的入口位址。裡面分析完了。

2、 signal函式的外面是 void(*)(int),想一想,在定義或者宣告函式的時候,都需要說明函式返回值的型別,這個signal函式的形參已經明確了,但是返回值還不知道,這個void(*)(int)就是返回值型別,這個型別是乙個函式指標,碰巧的是,這個函式指標指向的函式型別和signal的第二個形參指向的型別相同,都是指向:返回值為空,且帶乙個int型別形參的函式。

3、因此先用typedef定義一種資料型別,這個型別就是void(*)(int),將這種型別定義為,或者說是起名名,叫做sighandler_t。sighandler_t = void()(int),所以可以將void()(int)型別的函式,在宣告或者定義的時候用sighandler_t。

4、signal函式返回值為void(*)(int)型,用sighandler_t代替,第2個形參是void(*)(int)型,用sighandler_t代替。

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...