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 ?



  • 相关阅读:
    celery
    KeyError: 'pass_ticket'
    Go语言标准库之context
    Go语言标准库之log
    Go语言标准库之time
    Go语言基础之Cookie和Session
    #if...#endif的用法总结
    汇总#pragma用法
    Linux串口编程(转载)
    Linux系统调用(转载)
  • 原文地址:https://www.cnblogs.com/westfly/p/2398400.html
Copyright © 2011-2022 走看看