zoukankan      html  css  js  c++  java
  • struct 初始化

    看到某个源码,有个关于struct初始化的问题不是太清楚。

    源码如下

    #define _OBJ_CONTAINER_LIST_INIT(c)     \
    {&(rt_object_container[c].object_list), &(rt_object_container[c].object_list)}
    struct rt_object_information rt_object_container[RT_Object_Class_Unknown] =
    {
    /* initialize object container - thread */
    {RT_Object_Class_Thread, _OBJ_CONTAINER_LIST_INIT(RT_Object_Class_Thread), sizeof(struct rt_thread)},
    ……
    }

    主要集中在宏 _OBJ_CONTAINER_LIST_INIT(c)上。

    struct rt_object_information的定义如下

    struct rt_object_information
    {
    enum rt_object_class_type type; /**< object class type */
    rt_list_t object_list; /**< object list */
    rt_size_t object_size; /**< object size */
    };

    rt_list_t 是个双链表指针

    struct rt_list_node
    {
    struct rt_list_node *next; /* point to next node. */
    struct rt_list_node *prev; /* point to prev node. */
    };
    typedef struct rt_list_node rt_list_t; /* Type for lists. */

    怎么在宏中出现了两个 &rt_object_container[c].object_list ?



  • 相关阅读:
    构建高性能的读服务
    Redis基础入门
    基于TCP实现简单的聊天室
    递归

    Go标准库Cond
    排序(冒泡,选择,插入,快速)
    链表
    队列
    Golang实现RPC
  • 原文地址:https://www.cnblogs.com/westfly/p/2398400.html
Copyright © 2011-2022 走看看