list_entry Head_list 模拟一下,方便以后查看

#include <iostream>
using namespace std;
typedef struct head_list
{
 struct head_list *prv;
 struct head_list *next;
} _head_list;
//-----------------------------------------
typedef struct Data_List
{
 int Data_From;
 
 struct head_list list;int Data_To; 
} _Data_List;
//--------------------------------------------

void Init_Head_List(_head_list *list)
{
   list->prv=list;
   list->next=list;
}
//----------------------------------------------------------
void Add_Head_List(_head_list *Insert_list, _head_list *New)
{
   _head_list * Prv=Insert_list->prv;
   New->next=Insert_list;
   New->prv=Prv;
   Prv->next=New;
   Insert_list->prv=New;
}

_Data_List* Get_Data_ListAddress(_head_list *pos)
{
 size_t offsets=(size_t)(&((_Data_List*)0)->list);
 cout<<(_Data_List*)((char*)pos-offsets)<<endl;
 return (_Data_List*)((char*)pos-offsets);
}

void main()
{
    _Data_List Main_List;
    Init_Head_List(&Main_List.list);


    _Data_List *Node=new _Data_List;
 Node->Data_From=10;
 Node->Data_To=20;
    Add_Head_List(&Main_List.list,&Node->list);


    cout<<Node<<endl;
    ///
    head_list *Next=Main_List.list.next;
 //
 _Data_List *tmp=Get_Data_ListAddress(Next);
 
     cout<<tmp->Data_From<<endl;
  cout<<tmp->Data_To<<endl;

    ///
 delete Node;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值