在typedef的使用中,最麻煩的是指向函式的指標,如果沒有下面的函式,你知道下面這個表示式的定義以及如何使用它嗎?
int(*s_calc_func(charop))(int,int);
如果不知道,請看下面的程式,裡面有比較詳細的說明
// 定義四個函式
intadd(int,int);
intsub(int,int);
intmul(int,int);
intdiv(int,int); //
定義指向這類函式的指標
typedefint(*fp_calc)(int,int); //
int
(*s_calc_func(charop))(int,int);
// // 定義乙個函式
calc_func
,它根據操作字元
op 返回指向相應的計算函式的指標
fp_calccalc_func(charop); //
根據 op
返回相應的計算結果值
intcalc(inta,intb,charop);
intadd(inta,intb)
intsub(inta,intb)
intmul(inta,intb)
intdiv(inta,intb)
// 這個函式的用途與下乙個函式作業和呼叫方式的完全相同, //
引數為op,而不是最後的兩個整形
int(*s_calc_func(charop)) (int,int)
fp_calccalc_func(charop)
returnnull;
} intcalc(inta,intb,charop)
voidtest_fun()
執行結果
calc(100, 20, +) = 120
calc(100, 20, -) = 80
calc(100, 20, *) = 2000
calc(100, 20, /) = 5
typedef 指向函式的指標
對複雜變數建立乙個型別別名的方法很簡單,你只要在傳統的變數宣告表示式裡用型別名替代變數名,然後把關鍵字typedef加在該語句的開頭就行了。定義四個函式 intadd int,int intsub int,int intmul int,int intdiv int,int 定義指向這類函式的指標 t...
C 虛函式表 typedef指向函式的指標
一 typedef函式指標 2.虛函式表 注意 父類與子類的虛函式表是不同的,不是同乙個表。1 虛函式就是通過一張虛函式表實現的。簡稱為v table。在這個表中,主要是乙個類的虛函式的位址表,這張表解決了繼承覆蓋的問題。c 標準並沒有規定虛函式的實現方法,使用虛函式表的方法是編譯器廠商制定的。2 ...
函式指標和typedef的應用
首先寫個函式指標的例子 int pfun int,int 通過括號強行將pfun首先與 結合,也就意味著,pfun是乙個指標,接著與後面的 結合,說明該指標指向的是乙個函式,然後再與前面的int結合,也就是說,該函式的返回值是int。由此可見,pfun是乙個指向返回值為int的函式的指標。雖然它們只...