strcmpライブラリ関数ソースコードの心得


明日は実习面接に行って、复习の时に偶然ライブラリ関数の実现を见て、闻くべきだと思って、见ました.自分が実際に多くの常用関数に対してそのソースコードの実現過程を全く知らないことを発見して、だから明らかな間違いは再犯します.
strcpyのソースコードは次のとおりです.
char * __cdecl strcpy(char * dst, const char * src)
{
        char * cp = dst;
 
        while( *cp++ = *src++ )
                ;               /* Copy src over dst */
 
        return( dst );
}

この関数は非常に簡潔なので、多くの詳細は使用者に注意され、以下にまとめられています.
1、必ずdst空間がsrcより大きいことを保証する
2、srcポインタには必ず「0」の空白文字の終了フラグが必要です.そうしないと、コピーされる内容はsrcの開始アドレスからdstの開始アドレスまで、サイズには任意性があります.以下のコードは間違っています.
char string[10],str[10];
	int i;
	for (int i=0;i<5;i++)
	{
		str[i]='a';
	}
	strcpy(string,str);