這個C函式怎麼理解?儘量詳細,多謝

時間 2021-08-30 10:17:29

1樓:

這是一個函式,

函式名:errorsethandler

引數:function是個函式型別的變數,void (*)(int, char_t *),這個函式型別有兩個引數,一個整型,一個char_t *的指標型,返回是個void *指標。

返回:是個函式型別,void (*)(int , char_t *),型別說明跟上面一樣。

void (*errorsethandler(void (*function)(int etype, char_t *msg)))(int etype, char_t *msg)

補充一下:

通過typedef可以簡化這個函式的形式:

typedef void (*errhdlr)(int, char_t *);

然後這個函式可以簡化成:

errhdlr errorsethandler(errhdlr function)

這樣是不是就很直觀了

2樓:匿名使用者

從裡到外介紹:

void (*function)(int etype, char_t *msg)這個叫函式指標(請區別於指標函式:返回值是指標的函式),他首先是一個指標,這個指標指向的是一個函式,他的宣告方式是:

型別 (* 函式名指標)(引數),

typedef  void (*myfun)(int etype, char_t *msg);/定義函式指標

你可以把他理解為int,float之類的一種型別,只是他是個指標

於是乎,你的程式變成了這樣:

void (*errorsethandler(myfun function))(int etype, char_t *msg)//

你的這個函式的名稱實際叫 errorsethandler,他是myfun型別的,即他也是一個函式指標,他的引數也是myfun型別的。

於是我們可以這樣寫:

myfun errorsethandler(myfun function);//定義函式

myfun errorsethandler(myfun function)函式體

累死俺了,到底對不對呢,請看以下程式,儘量根你的相同吧。

#include

void func1()

void func2()

typedef void (*myfunc)(void);

myfunc sethandler(myfunc function);

myfunc sethandler(myfunc function)

void main()

{myfunc pfunc1,pfunc2,pfunc3;

pfunc1=func1;

pfunc2=func2;

pfunc3=sethandler(pfunc1);

pfunc3();

pfunc3=sethandler(pfunc2);

pfunc3();

c語言for這個語句怎麼理解,C語言for 這個語句怎麼理解?

風千觴 for語句的一般形式為 for 表示式1 表示式2 表示式3 語句3個表示式的主要作用是 表示式1 設定初始條件,只執行一次。可以為零個 一個或多個變數設定初值。表示式2 是迴圈條件表示式,用來判斷是否繼續迴圈。在每次執行迴圈體前先執行此表示式,決定是否繼續執行迴圈。表示式3 作為迴圈的調整...

請問大家覺得這個女的長的怎麼樣?儘量說的詳細一點,從五官還有

來自溫湯鎮盡職的美人瓜 這年頭什麼樣的人都出來晒?沒鏡子可以撒泡尿照照啊? 按我來說呢,長得也就一般,年齡超不過20吧 手機使用者 這個女孩比較稚氣,五官不是那麼完美,但眉毛的嘴脣還是比較秀麗的,鼻子是弓鷹鼻,中等眼睛,小單眼皮,感覺挺有神。整體臉形未成熟,有待發育。頭髮料理得挺好的,應該是比較開朗...

從深圳寶安機場到香港尖沙咀怎麼乘車?盡量詳細點,謝謝

你好,希望我的回答可以幫助到你 首先做機場大巴到羅湖火車站,在羅湖出關會比較方便,因為這邊的車多,從羅湖出關一定是坐火車,可使用八達通,到旺角需要33元,從皇崗口岸出關坐大巴到旺角都要35元左右,不過皇崗的人比較多,如果你是自由行,建議上這個 http www.查詢香港交通資訊。另外提醒你,香港的交...