這是keil工程iap跳轉程序,typedef void (*iapfun)(void);//這句是頭文件中的定義iapfun jump2app; 這是c文件中的聲明jump2app=(iapfun)*(vu32*)(appxaddr+4); //c文件函數中的調用jump2app();//函數中的調用
2 回答

波斯汪
TA貢獻1811條經驗 獲得超4個贊
typedef void (*iapfun)(void);
定義函數指針
iapfun jump2app;
定義函數指針對象
jump2app=(iapfun)*(vu32*)(appxaddr+4);
為函數指針對象賦值
jump2app();
調用函數
以下是一個例子:
// 定義一個函數
void fun() { printf("fun\n");}
// 定義函數指針,
typedef void (*lpfn)();
// 注意二者要匹配,否則會報錯
lpfn p = fun;
// 調用函數p()效果同fun()
p();
函數指針的一個作用是可以將函數作為參數傳遞。
回憶一下c語言中的sort函數,用戶可以自定義排序準則函數,然后將其提交給sort函數調用。

qq_花開花謝_0
TA貢獻1835條經驗 獲得超7個贊
typedef
elemtype
*triplet
是定義一個triplet類型,它與elemtype
*等價。
triplet
&t不是C的用法,這是C++的引用參數傳遞,這樣對形參t的修改會反映到實參本身。
- 2 回答
- 0 關注
- 190 瀏覽
添加回答
舉報
0/150
提交
取消