|
这是在RTT里看见的,觉得有意思就贴上来了。- #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)},
- #ifdef RT_USING_SEMAPHORE
- /* initialize object container - semaphore */
- {RT_Object_Class_Semaphore, _OBJ_CONTAINER_LIST_INIT(RT_Object_Class_Semaphore), sizeof(struct rt_semaphore)},
- #endif
- ...
- };
复制代码 定义了一个rt_object_container结构体,并给结构体赋初值,而在赋初值时又调用这个结构体本身了;有点想不明白这里的过程。- /**
- * The information of the kernel object
- */
- 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 */
- };
复制代码 还有赋初值当中又给成员变量赋初值;一环套一环啊
这样使用我真没有见过,可能少见多怪了 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|