memcmp 예제

다음 예제에서는 memcmp() 함수의 사용을 보여 주었습니다. 이 함수는 개체 값이 아닌 개체 표현을 읽으며 일반적으로 패딩이 없는 사소한 복사 가능한 개체에 대해서만 의미가 있습니다. 예를 들어, sd:::string 또는 std:vector 형식의 두 개체 간에 memcmp() 해당 내용을 비교 하지 않습니다., memcmp() 형식 struct{char c; int n;} c와 n의 값이 같을 때 값이 다를 수 있는 패딩 바이트를 비교 합니다. 결과의 부호는 비교되는 개체에서 다른 첫 번째 바이트 쌍(둘 다 서명되지 않은 char로 해석됨)의 값 간의 차이의 표시입니다. 서명되지 않은 문자로 촬영할 때 s1의 첫 번째 n 바이트가 s2의 바이트와 사전적으로 같으면 memcmp()는 0을 반환합니다. 그렇지 않으면 s1이 s2보다 적거나 큰지 여부에 따라 음수 또는 양수를 반환합니다. memcmp() 함수는 두 메모리 영역의 n바이트를 비교하여 각 바이트를 서명되지 않은 문자로 처리합니다. s1이 s2보다 적거나 같거나 큰지 여부에 따라 정수보다 적거나 같거나 0보다 큰 정수를 반환합니다. lhs와 rhs가 같거나 개수가 0인 경우 0입니다.

C 라이브러리 함수 int memcmp(const void *str1, const void *str2, size_t n))는 메모리 영역 str1 및 메모리 영역 str2의 첫 번째 n 바이트를 비교합니다. 반환 값 <0면 str1이 str2보다 적음을 나타냅니다. lhs 와 rhs가 가리키는 개체의 끝을 넘어 액세스가 발생하는 경우 동작은 정의되지 않습니다. lhs 또는 rhs가 null 포인터인 경우 동작은 정의되지 않습니다. 0이 모든 수의 lhs 및 rhs가 같으면 . lhs 및 rhs로 가리키는 개체의 첫 번째 카운트 문자를 비교합니다. 비교는 사전적으로 수행됩니다. 우리가 컴파일하고 다음과 같은 결과를 생성합니다 위의 프로그램을 실행하자 – .

. lhs에서 첫 번째 다른 바이트(부호 없는 char로 재해석됨)가 rhs의 해당 바이트보다 적은 경우 음수 값입니다. . lhs가 사전 순서로 rhs 앞에 나타나는 경우 음수 값입니다. 이 함수는 개체 값이 아닌 개체 표현을 읽으며 일반적으로 바이트 배열에만 의미가 있습니다. 형식은 동일한 값에 대해 두 개 이상의 표현을 가질 수 있습니다(+0 및 -0 또는 +0.0 및 -0.0의 경우 형식 내의 확정되지 않은 패딩 비트).