搜尋

首頁  >  問答  >  主體

c++ - 一個關於static語法的問題

我盡量描述清楚問題,如有不清楚請留言,我會盡快回覆.
有以下聲明形式:

 typedef struct mr_dup_ops
    {
        /* 查询镜像状态 */
        int32_t (*dup_mirror_state_query)(uint32_t, mr_kern_mirror_state_query_req_t*);
        ……………………
        ……………………
      
    } mr_dup_owner_ops_t;

然後宣告

STATIC mr_dup_owner_ops_t g_local_mr_dup_ops = {
    .dup_mirror_state_query        = mr_ioctl_kern_mirror_state_query,
    ………………
    ………………
    };

接著假設有mr_dup_owner_ops_t的指標ops的話就可以透過 ops->dup_mirror_state_query來存取函數mr_ioctl_kern_mirror_state_query.

結構體mr_dup_owner_ops_t我能看懂是聲明了一組函數指針,那麼加STATIC 結構體 結構體名 ={.dup_mirror_state_query 這是什麼形式?

習慣沉默習慣沉默2693 天前959

全部回覆(3)我來回復

  • 我想大声告诉你

    我想大声告诉你2017-06-30 09:58:42

    只是宣告變數 g_local_mr_dup_ops 的作用域為靜態的而已。 STATIC 應該是什麼宏,C/C++ 的關鍵字是小寫的。

    回覆
    0
  • 学习ing

    学习ing2017-06-30 09:58:42

    static 結構體A 變數a = { ..... }

    定義一個A型別的變數a,靜態屬性,並使用{....} 初始化

    回覆
    0
  • 天蓬老师

    天蓬老师2017-06-30 09:58:42

    初始化部分的語法是gcc的擴展,叫做Designated Initializers.

    回覆
    0
  • 取消回覆