====== 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()]]