函式指標的妙用

2021-04-24 21:59:42 字數 535 閱讀 5999

今天上www.armfans.net**上瀏覽帖子的時候,看到乙個很好玩且非常有學習意義的帖子,將的是c中函式指標的妙用,現將內容轉錄如下

一小段精彩的 c語言,1和2實現相同的功能,歡迎大夥跟帖呵(特別感謝trio老師)

1  void (*theuboot)(void);

。。。。

theuboot = (void (*)(void))(0x30700000);

*theuboot();

。。。。。

2  (*(void (*)(void))(0x30700000))();

函式指標以前感覺很虛,沒見過真的例子,這次見了乙個,果然覺得很有妙用啊,剛開始看的不太懂,後經過trio的講解,再結合上的高階c語言課,現在有點懂了,theuboot = (void (*)(void))(0x30700000)這句話是把0x30700000這個絕對位址轉換為乙個函式指標賦值給theuboot,然後再引用下theuboot所指向的函式,猛,這對只知道函式入口位址的特殊函式,像沒有宣告過的,或不在同乙個工程的函式的呼叫應該很有用,學習下,呵呵

函式指標的妙用

假設程式裡面定義了100函式,函式名為fun1,fun2,fun3,fun4.fun100.想在程式執行時候,給定乙個數比如10,如何能自動的呼叫fun10,輸入20,自動呼叫fun20呢?用if else 或者switch case都能實現。但有沒有更好的辦法呢?定義乙個巨集 define fun...

函式指標陣列的妙用

筆者在開發某軟體過程中遇到這樣乙個問題,前級模組傳給我二進位制資料,輸入引數為 char buffer和 int length,buffer是資料的首位址,length表示這批資料的長度。資料的特點是 長度不定,型別不定,由第乙個位元組 buffer 0 標識該資料的型別,共有256 28 種可能性...

函式指標陣列的妙用

問題原型 switch nstreamtype 這樣寫的 相當長,而且讓人看著不舒服。想到用函式指標陣列來加以改善。函式名實際上也是一種指標,指向函式的入口位址,但它又不同於普通的如int double 指標,看下面的例子來理解函式指標的概念 int funtion int x,int y void...