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

📄 tb.c

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 C
字号:
/* tb.c: check which entries exist, also storage allocation */# include "t.h"voidcheckuse(void){	int	i, c, k;	for (c = 0; c < ncol; c++) {		used[c] = lused[c] = rused[c] = 0;		for (i = 0; i < nlin; i++) {			if (instead[i] || fullbot[i]) 				continue;			k = ctype(i, c);			if (k == '-' || k == '=') 				continue;			if ((k == 'n' || k == 'a')) {				rused[c] |= real(table[i][c].rcol);				if ( !real(table[i][c].rcol))					used[c] |= real(table[i][c].col);				if (table[i][c].rcol)					lused[c] |= real(table[i][c].col);			} else				used[c] |= real(table[i][c].col);		}	}}intreal(char *s){	if (s == 0) 		return(0);	if (!point(s)) 		return(1);	if (*s == 0) 		return(0);	return(1);}int	spcount = 0;# define MAXVEC 20char	*spvecs[MAXVEC];char	*chspace(void){	char	*pp;	if (spvecs[spcount])		return(spvecs[spcount++]);	if (spcount >= MAXVEC)		error("Too many characters in table");	spvecs[spcount++] = pp = calloc(MAXCHS + MAXLINLEN, 1);	if (pp == (char *) - 1 || pp == (char *)0)		error("no space for characters");	return(pp);}# define MAXPC 50char	*thisvec;int	tpcount = -1;char	*tpvecs[MAXPC];int	*alocv(int n){	int	*tp, *q;	if (tpcount < 0 || thisvec + n > tpvecs[tpcount] + MAXCHS) {		tpcount++;		if (tpvecs[tpcount] == 0) {			tpvecs[tpcount] = calloc(MAXCHS, 1);		}		thisvec = tpvecs[tpcount];		if (thisvec == (char *)0)			error("no space for vectors");	}	tp = (int *)thisvec;	thisvec += n;	for (q = tp; q < (int *)thisvec; q++)		*q = 0;	return(tp);}voidrelease(void){			/* give back unwanted space in some vectors */			/* this should call free; it does not because				alloc() is so buggy */	spcount = 0;	tpcount = -1;	exstore = 0;}

⌨️ 快捷键说明

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