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

📄 memmov.c

📁 Many C samples. It is a good sample for students to learn C language.
💻 C
字号:
/*  File   : memmov.c
    Author : Richard A. O'Keefe.
    Updated: 25 May 1984
    Defines: memmov()

    memmov(dst, src, len)
    moves len bytes from src to dst.  The result is dst+len.
    This is to memcpy as str[n]mov is to str[n]cpy, that is, it moves
    exactly the same bytes but returns a pointer to just after the
    the last changed byte.  You can concatenate blocks pa for la,
    pb for lb, pc for lc into area pd by doing
	memmov(memmov(memmov(pd, pa, la), pb, lb), pc, lc);
    Unlike strnmov, memmov does not stop when it hits a NUL byte.

    Note: the VAX assembly code version can only handle 0 <= len < 2^16.
    It is presented for your interest and amusement.
*/

#include "strings.h"

#if	VaxAsm

char *memmov(dst, src, len)
    char *dst, *src;
    int len;
    {
	asm("movc3 12(ap),*8(ap),*4(ap)");
	return dst+len;
    }

#else  ~VaxAsm

char *memmov(dst, src, len)
    register char *dst, *src;
    register int len;
    {
	while (--len >= 0) *dst++ = *src++;
	return dst;
    }

#endif	VaxAsm

⌨️ 快捷键说明

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