memccpy.c

来自「操作系统源代码」· C语言 代码 · 共 40 行

C
40
字号
#include <lib.h>/* memccpy - copy bytes up to a certain char * * CHARBITS should be defined only if the compiler lacks "unsigned char". * It should be a mask, e.g. 0377 for an 8-bit machine. */#include <ansi.h>#include <stddef.h>_PROTOTYPE( void *memccpy, (void *dst, const void *src,			    int ucharstop, size_t size));#ifndef CHARBITS#	define	UNSCHAR(c)	((unsigned char)(c))#else#	define	UNSCHAR(c)	((c)&CHARBITS)#endifvoid *memccpy(dst, src, ucharstop, size)void * dst;_CONST void * src;int ucharstop;_SIZET size;{  register char *d;  register _CONST char *s;  register _SIZET n;  register int uc;  if (size <= 0) return( (void *) NULL);  s = (char *) src;  d = (char *) dst;  uc = UNSCHAR(ucharstop);  for (n = size; n > 0; n--)	if (UNSCHAR(*d++ = *s++) == (char) uc) return( (void *) d);  return( (void *) NULL);}

⌨️ 快捷键说明

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