⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 list_demo.c

📁 自己编的双链表
💻 C
字号:
// 链表中元素的结构
typedef struct _n20_directory_desc
{
	// 注意:类型为as_list的成员必须为结构体的第一个成员。
	as_list		list;				
	TCHAR		path[PATH_SIZE];
}n20_directory_desc;


// 初始化链表头指针
LIST_HEAD(pend_directory_list);

// 向链表中加入一个元素,插入到尾部,实现的是队列
void  add_new_dir(n20_directory_desc *pDir)
{
	pNewDirDesc = (n20_directory_desc *)malloc(sizeof(n20_directory_desc));
	memset(pNewDirDesc, 0, sizeof(n20_directory_desc));
	list_add_tail(&pNewDirDesc->list, &pend_directory_list);
}

void use_list_demo(void)
{	
	n20_directory_desc *pUseDir;
	struct list_head *ptemp;
	
	// 判断链表中是否有元素,取出其中第一个元素使用
	while(list_empty(&pend_directory_list) != TRUE)
	{
		ptemp = &pend_directory_list;
		// 注意下列函数的第二个参数为链表中元素的结构体名称,第三个参数为结构体中类型为"as_list"的成员的名称。
		pUseDir = list_entry(ptemp->next, n20_directory_desc, list);
		
		// TODO: 加入使用pUseDir指向的数据的代码。
		demo_use_item(pUseDir);
		
		// 使用完后,从链表中删除此项
		list_del(&pUseDir->list);
		free(pUseDir);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -