c語言函數怎麼看數據類型?typedef void (*IapFun)(void);
jump2app = (iapfun) * (vu32 *)(appxaddr 4); //用戶代碼區第二個字為程序開始地址(複位地址)
MSR_MSP(*(vu32 *)appxaddr); //初始化APP堆棧指針(用戶代碼區的第一個字用于存放棧頂地址)
jump2app(); //跳轉到APP.
,接下來我們就來聊聊關于c語言函數怎麼看數據類型?以下内容大家不妨參考一二希望能幫到您!
typedef void (*IapFun)(void);
jump2app = (iapfun) * (vu32 *)(appxaddr 4); //用戶代碼區第二個字為程序開始地址(複位地址)
MSR_MSP(*(vu32 *)appxaddr); //初始化APP堆棧指針(用戶代碼區的第一個字用于存放棧頂地址)
jump2app(); //跳轉到APP.
對這段代碼有種熟悉的陌生感,遂特此記錄,以供日後察看.
typedef的意義
typedef int a[10]; // a 類型是 int[10];(存放int型數據的數組)
a arr; // 定義一個數組:int arr[3];
typedef void (*p)(void); //p 類型是void ( * )void
p A; //是指void(*A)(void);
語法上typedef屬于存儲類聲明說明符。a[10]不是int的别名,(*p)(void)不是void的别名。上面的語句把a聲明為具有10個int元素的數組的類型别名,p是一種函數指針的類型别名。定義一個函數指針類型。比如原函數是
void func(void);
那麼定義的函數指針類型就是
typedef void (*Fun)(void);
然後用此類型生成一個指向函數的指針:
Fun func1;
當func1獲取函數地址之後,那麼你就可以向調用原函數那樣來使用這個函數指針:
func1(void);
兩種用法
typedef void (*IapFun)(void); //定義函數指針
void func(void); //定義函數
IapFun fun = func; //為函數指針對象賦值
fun(); //這裡的fun()其實就相當于跳轉到了func()裡
typedef void (* IapFun)(void); //定義函數指針
IapFun jump2app; //定義函數指針對象
jump2app=(IapFun) * (vu32*)(appxaddr 4); //為函數指針對象賦值 appxaddr為函數指針地址,例如0x08000000
jump2app(); //調用函數
來自技術讓夢想更偉大
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!