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

📄 list.c

📁 lcc,一个可变目标c语言编译器的源码
💻 C
字号:
#include "c.h"static char rcsid[] = "$Id: list.c,v 1.1 2002/08/28 23:12:44 drh Exp $";static List freenodes;		/* free list nodes *//* append - append x to list, return new list */List append(void *x, List list) {	List new;	if ((new = freenodes) != NULL)		freenodes = freenodes->link;	else		NEW(new, PERM);	if (list) {		new->link = list->link;		list->link = new;	} else		new->link = new;	new->x = x;	return new;}/* length - # elements in list */int length(List list) {	int n = 0;	if (list) {		List lp = list;		do			n++;		while ((lp = lp->link) != list);	}	return n;}/* ltov - convert list to an NULL-terminated vector allocated in arena */void *ltov(List *list, unsigned arena) {	int i = 0;	void **array = newarray(length(*list) + 1, sizeof array[0], arena);	if (*list) {		List lp = *list;		do {			lp = lp->link;			array[i++] = lp->x;		} while (lp != *list);#ifndef PURIFY		lp = (*list)->link;		(*list)->link = freenodes;		freenodes = lp;#endif	}	*list = NULL;	array[i] = NULL;	return array;}

⌨️ 快捷键说明

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