====== memcmp() ======
memcmp ist definiert in der ''[[start|string]]'', die in C über ''string.h'', bzw. in C++ über ''cstring'' eingebunden wird.
===== Funktion =====
memcmp() vergleicht zwei Speicherbereiche über eine wählbare Größe. Der Rückgabewert ist 0, wenn die Speicherbereiche gleich sind.
===== Signatur =====
#include
void * memcmp( void const * first, void const * second, size_t size );
**first**: Speicherblock (mindestens der Größe ''size'') \\
**source**: zu vergleichender Speicherblock (mindestens der Größe ''size'') \\
**size**: Anzahl maximal zu vergleichender Bytes (Der Typ ''size_t'' entspricht i.d.R. [[c:type:int]]))
**Return value**: Ein Integer, das wie folgt interpretiert wird
^ Rückgabewert ^ Bedeutung ^
| 0 | Die verglichenen Zeichen hatten identische Werte |
| > 0 | Die verglichenen Zeichen waren nicht identisch, der erste unterschiedliche Wert war bei ''first'' größer als bei ''second'' |
| < 0 | Die verglichenen Zeichen waren nicht identisch, der erste unterschiedliche Wert war bei ''first'' kleiner als bei ''second'' |
===== Fehlerquellen =====
Ist ''size'' größer als einer der beiden zu vergleichenden Speicherblöcke findet ein lesender Zugriff auf Speicherbereiche statt, die nicht dem Programm zugeordnet sind. Dies endet daher häufig in einem Programmabsturz.
===== Beispiel =====
#include // definiert memcmp
#include // definiert printf
#include // definiert EXIT_SUCCESS
char const * string = "programming is fun";
char const * identical = "programming is fun";
char const * greater = "programming is the best";
char const * less = "programming is boring";
int main( void )
{
int length = strlen( string );
printf( "%s - %s: %d\n", identical, string, memcmp( identical, string, length ) );
printf( "%s - %s: %d\n", greater, string, memcmp( greater, string, length ) );
printf( "%s - %s: %d\n", less, string, memcmp( less, string, length ) );
return EXIT_SUCCESS;
}
**Ausgabe:**
programming is fun - programming is fun: 0
programming is the best - programming is fun: 1
programming is boring - programming is fun: -1
===== siehe auch =====
[[c:lib:string:start|string]]: [[c:lib:string:memchr|memchr()]], [[c:lib:string:memcpy|memcpy()]], [[c:lib:string:memset|memset()]], [[c:lib:string:strncmp|stncmp()]]