The memcmp function in C is used to compare the contents of two memory areas byte by byte. The return value indicates their relationship.
memcmp Function Header File
The header file for the memcmp function is <string.h>. Before using the memcmp function, ensure that this header file is included in your C code:
#include <string.h>
memcmp Function Prototype
int memcmp(const void *s1, const void *s2, size_t n);
The memcmp function compares the first n characters of the object pointed to by s1 with the first n characters of the object pointed to by s2;
The comparison is performed byte by byte, from the lowest address to the highest address;
Parameter Description
s1: A pointer to the first memory block;s2: A pointer to the second memory block;n: The number of bytes to compare;
Return Value
The memcmp function returns an integer greater than, equal to, or less than 0;
A return value of 0 indicates that the first n bytes of both memory blocks are completely identical;
The positive or negative return value is calculated based on the difference in byte values:
memcmp = (unsigned char)s1[i] - (unsigned char)s2[i];
memcmp Example Code
Comparing Arrays for Equality
When comparing arrays or structures, ensure the entire object region is covered;
#include <stdio.h>
#include <string.h>
int main() {
    
    int array1[] = { 1, 2, 3, 4, 5};
    int array2[] = { 1, 2, 3, 4, 5};
    if (memcmp(array1,array2,sizeof(int) * 5) == 0) {
        printf("Completely identical.\n");
    }else{
        printf("Differences exist.");
    }
    return 0;
}