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

📄 listelem.c

📁 操作系统SunOS 4.1.3版本的源码
💻 C
字号:
#ifndef lintstatic char sccsid[] = "@(#)listelem.c 1.1 92/07/30 Copyr 1988 Sun Micro";#endif/* * Copyright (c) 1988 by Sun Microsystems, Inc. */#include <stdio.h>#include <nse/types.h>#include <nse/param.h>#include "nse_impl/list.h"#include <nse/util.h>/* * Return a pointer to the next element of a list  */Nse_listelemnse_listelem_next(elem)	Nse_listelem	elem;{	return elem->next;}/* * Return a pointer to the previous element of a list  */Nse_listelemnse_listelem_prev(elem)	Nse_listelem	elem;{	return elem->prev;}/* * Return pointer to the data pointer of an element of a list. */Nse_opaquense_listelem_data(elem)	Nse_listelem	elem;{	return elem->data;}/* VARARGS1 *//* * Set the data of an element of a list. */voidnse_listelem_set_data(elem, data)	Nse_listelem	elem;	Nse_opaque	data;{	if (elem) {		elem->data = data;	}}/* * Destroy and free the memory associated with a list element. */voidnse_listelem_destroy(list, elem)	Nse_list	list;	Nse_listelem	elem;{	Nse_voidfunc	destroy_func;	destroy_func = list->ops->destroy;	if (destroy_func != NULL) {		destroy_func(elem->data);	}	NSE_DISPOSE(elem);}/* * Destroy and free the memory associated with the structure wrapped * around the data item of a list element. *//* ARGSUSED */voidnse_listelem_destroy_wrapper(list, elem)	Nse_list	list;	Nse_listelem	elem;{	NSE_DISPOSE(elem);}/* * Print an element of a list. */voidnse_listelem_print(list, elem)	Nse_list	list;	Nse_listelem	elem;{	Nse_voidfunc	print_func;	print_func = list->ops->print;	if (print_func != NULL) {		print_func(elem->data);	}}/* * Delete an element of a list. */voidnse_listelem_delete(list, elem)	Nse_list	list;	Nse_listelem	elem;{	nse_listelem_remove(list, elem);	nse_listelem_destroy(list, elem);}/* * Remove an element of from a list and return it. */Nse_listelemnse_listelem_remove(list, elem)	Nse_list	list;	Nse_listelem	elem;{	elem->prev->next = elem->next;	elem->next->prev = elem->prev;	list->nelems--;	return elem;}/* * Copy an element of a list. */Nse_listelemnse_listelem_copy(list, elem)	Nse_list	list;	Nse_listelem	elem;{	Nse_opaquefunc	copy_func;	Nse_listelem	newelem;	copy_func = list->ops->copy;	newelem = NSE_NEW(Nse_listelem);	if (copy_func != NULL) {		newelem->data = copy_func(elem->data);	}	return newelem;}/* * Compare two elements of a list and return a boolean as to their * equality. */bool_tnse_listelem_equal(list, elem1, elem2)	Nse_list	list;	Nse_listelem	elem1;	Nse_listelem	elem2;{	Nse_boolfunc	equal_func;	bool_t		r;	equal_func = list->ops->equal;	if (equal_func != NULL) {		r = equal_func(elem1->data, elem2->data);	} else {		r = FALSE;	}	return r;}

⌨️ 快捷键说明

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