函式
指標是指向函式的指標變數。
因此「函式指標
」本身首先應是
指標變數
,只不過該指標變數指向函式。這正如用指標變數可指向
整型變數
、字元型、
陣列一樣,這裡是指向函式。如前所述,c在
編譯時,每乙個函式都有乙個入口位址,該入口位址就是函式指標所指向的位址。有了指向函式的指標變數後,可用該指標變數呼叫函式,就如同用指標變數可引用其他型別變數一樣,在這些概念上是大體一致的。函式指標有兩個用途:呼叫函式和做函式的引數。
函式位址一般都在4的倍數處
函式首位址為
函式第一行指令位置
一般在程式裝載基址+0x1000 處 為自定義函式跳轉表
除錯版會有
函式指標宣告
int (_cdecl *pfun)(int ,int);
上述**宣告了乙個函式指標pfun 其詳細資訊為 呼叫約定為
_cdecl 參1
整形 參
2整形 返回值整形
函式直接呼叫:
例定義乙個函式
void foo()
直接呼叫:
foo();
函式指標間接呼叫:
void (*pfun) ();
pfun = foo;
pfun();
函式指標型別會進行強型別檢查
typedef 為某型別起別名
typedef void (*pfun)();
那麼 void (*)() == pfun
typedef int dword
那麼 int == dword
函式指標不能做任何運算
給型別起別名
define crt secure no warnings include include include typedef unsigned int u32 typedef和結構體結合使用 struct mystruct typedef struct mystruct2 tmp void,無型別 1...
函式及函式指標
void int handler 普通的函式宣告 void int handler 函式指標的宣告 即宣告了乙個函式指標,此函式是沒有返回值和形參的函式,即 中的函式。typedef void int handler 用typedef定義一種函式指標的型別,也就是說這裡的int handler 就代...
Linux 給命令起個別名
linux 提供的命令別名功能很有用.比如我經常使用ll more 命令,而不是直接使用ll.但又不想敲那麼多的字元.那麼,可以給ll more設定別名 root localhost alias lm ll more 試試命令lm,它的效果跟ll more一樣 再比如dos下的清屏命令是cls,而l...