unpack.c

来自「<B>Digital的Unix操作系统VAX 4.2源码</B>」· C语言 代码 · 共 41 行

C
41
字号
/* Copyright (c) 1979 Regents of the University of California */static char sccsid[] = "@(#)UNPACK.c 1.3 6/10/81";/* * unpack(z,a,i) * * with:	z and a as in pack * * semantics:	for j := u to v do *			a[j-u+i] := z[j] */UNPACK(i, a, z, size_a, lb_a, ub_a, size_z)	long	i;	/* subscript into a to begin packing */	char	*a;	/* pointer to structure a */	char	*z;	/* pointer to structure z */	long	size_a;	/* sizeof(a_type) */	long	lb_a;	/* lower bound of structure a */	long	ub_a;	/* (upper bound of a) - (lb_a + sizeof(z_type)) */	long	size_z;	/* sizeof(z_type) */{	int		subscr;	register char	*cp;	register char	*zp = z;	register char	*limit;	subscr = i - lb_a;	if (subscr < 0 || subscr > ub_a) {		ERROR("i = %D: Bad i to unpack(z,a,i)\n", i);		return;	}	cp = &a[subscr * size_a];	limit = cp + size_z;	do	{		*cp++ = *zp++;	} while (cp < limit);}

⌨️ 快捷键说明

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