C语言中memcpy的参数顺序设计思想是什么?为什么这样设计?

用过C语言的strcpy的同学可能有这样一个疑问:为什么是strcpy(目标地址,源地址)这样的顺序呢?这样很不方便呀。通常不都是(源地址,目的地址)吗?“copy A to B”,这样更符合习惯用法呀。

后来我上网查了一下,说是设计者想和memcpy保持同步:

char *strcpy(char* dest, const char *src);

void *memcpy(void *dest, void *src, unsigned n);

如果是(源地址,字节数,目的地址)这样明明更符合习惯呀:“从源地址复制N字节到目的地址”。那么问题来了:为什么memcpy的函数签名是这样设计的呢?

简单说这就老外的逻辑
不是我们自己的开发语言
你可以以发明出属于我们自己的开发语言为目标
那个时候就是我们自己的逻辑,就没有这方面的纠结了