memcmp 함수의 manual은 다음과 같다!

#include <string.h>
int memcmp(const void *s1, const void *s2, size_t n);
memcmp함수는 바이트 문자열 s1을 바이트 문자열 s2와 비교한다.(바이트라고 했으므로 전에 설명했다시피 unsigned char로 비교하는 것을 유추할 수 있다)
두 문자열 모두 n 바이트 길이로 간주한다.
0: 두 문자열이 동일한 경우
양수: s1에서 첫 번째로 다른 바이트가 s2의 해당 바이트보다 클 경우
음수: s1에서 첫 번째로 다른 바이트가 s2의 해당 바이트보다 작을 경우
길이가 0인 문자열은 항상 동일한 것으로 간주한다.
int ft_memcmp(const void *s1, const void *s2, size_t n)
{
unsigned char *u1;
unsigned char *u2;
u1 = (unsigned char *) s1;
u2 = (unsigned char *) s2;
while (0 < n)
{
if (*u1 != *u2)
return (*u1 - *u2); //unsigned char의 뺄셈 결과는 기본적으로 int로 확장되어 형변환을 할 필요가 없다
u1++;
u2++;
n--;
}
return (0);
}