sprintb.c

来自「早期freebsd实现」· C语言 代码 · 共 42 行

C
42
字号
/* sprintb.c - sprintf a %b string */#ifndef	lintstatic char ident[] = "@(#)$Id: sprintb.c,v 1.3 1992/12/15 00:20:22 jromine Exp $";#endif	/* lint */#include "../h/mh.h"#include <stdio.h>char   *sprintb (buffer, v, bits)register char  *buffer,               *bits;register unsigned   v;{    register int    i,                    j;    register char   c,                   *bp;    (void) sprintf (buffer, bits && *bits == 010 ? "0%o" : "0x%x", v);    bp = buffer + strlen (buffer);    if (bits && *++bits) {	j = 0;	*bp++ = '<';	while (i = *bits++)	    if (v & (1 << (i - 1))) {		if (j++)		    *bp++ = ',';		for (; (c = *bits) > 32; bits++)		    *bp++ = c;	    }	    else		for (; *bits > 32; bits++)		    continue;	*bp++ = '>';	*bp = 0;    }    return buffer;}

⌨️ 快捷键说明

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