创建一个共享双向链表实现对节点承载数据的访问
#include <iostream>
#include <string>
#include <stdlib.h>
using namespace std;
//共享链表的节点作为承载数据的节点
typedef struct _DoubleLinkNode
{
struct _DoubleLinkNode* next;//下一个结点的指针
struct _DoubleLinkNode* prev;//上一个结点的指针
}DbLinkNode, DbLinklist;//Linklist为指向结构体LNode的指针类型
typedef struct
{
int fd;
time_t timeout;//使用超时时刻时间戳表示
DbLinkNode node;//双向链表结点"挂件"
}ConnTimeout;
bool DbList_Init(DbLinklist& L)
{
L.next = NULL;//指针域置空
L.prev = NULL;
return true;
}
int main()
{
//通过节点访问节点承载的数据
ConnTimeout* cl = NULL;
cl = new ConnTimeout;
cl->fd = -1;
DbList_Init(cl->node);
ConnTimeout* ct = new ConnTimeout;
DbLinkNode* P = &(ct->node);
cout << "请输入超时结点对应的fd:";
cin >> ct->fd;
cout << "\n通过链表中的结点访问结点上承载的数据:" << endl;
int offset = offsetof(ConnTimeout, node);
ConnTimeout* tmp = (ConnTimeout*)((size_t)