回覆列表
  • 1 # 七點半開聚

    一般需要定義一個函式指標型別

    typedef int (*function_pointer_t) ( int arg1, int arg2 );

    然後,定義函式指標變數

    function_pointer_t fp_invoker = 0;

    函式指標可以動態改變內容,改變呼叫物件,假設有兩個函式

    int function_sum( int arg1, int arg2 ){ return arg1+arg2;}int function_sub( int arg1, int arg2 ){ return arg1-arg2;}

    注意到兩個函式的原型與函式指標型別是一致的。以下是呼叫

    fp_invoker = function_sum; // 直接用函式名賦值即可fp_invoker(1,2); // 呼叫時,可以認為函式指標便是函式名,此時呼叫加法fp_invoker = function_sub; // 同理,切換到減法fp_invoker(1,2); // 呼叫減法

    以上都是直觀的用法,通常函式指標用於回撥,即下層函式先將函式指標內容儲存起來,處理結束後,再呼叫。此時要注意首先檢查函式指標內容是否為空。

    if( fp_invoker ){ fp_invoker( arg1, arg2 );}

  • 中秋節和大豐收的關聯?
  • 絲瓜的拼音絲瓜的拼音怎麼?