首页  >  问答  >  正文

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 这是什么形式?

習慣沉默習慣沉默2690 天前958

全部回复(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
  • 取消回复