几乎所有用于将一个对象复制到另一个对象的程序或函数都使用基本约定
复制(来源,目的地)
即使是常见的逻辑也会导致人们得出结论,即你正在将一些东西从这里复制到那里。为什么strcpy使用完全相反的约定?它只会使试图使用该功能的人感到困惑。当撰写函数时,strcpy的作者当然会想到这个吗?或者strcpy函数是否早于这种现在无处不在的使用惯例?
答案 0 :(得分:4)
他们希望匹配memcpy的语法。
char * strcpy ( char * destination, const char * source );
void * memcpy ( void * destination, const void * source, size_t num );
其他C函数也使用此命令。
基本的strcpy(...)实现将是(跳过castings):
char * strcpy ( char * destination, const char * source ) {
return memcpy(destination, source, strlen(source) + 1);
}