In C wird die Funktion memset () verwendet, um einen Ein-Byte-Wert auf ein Speicherblock-Byte durch Byte festzulegen. Diese Funktion ist nützlich für die Initialisierung eines Speicherblock -Byte durch Byte durch einen bestimmten Wert. In diesem Artikel werden wir ausführlich sehen, wie diese Funktion verwendet werden kann. Also lasst uns anfangen.
Header-Datei:
Saite.HSyntax:
void *memset (void *str, int ch, size_t n)Diese Funktion legt die erste fest N Bytes des Speicherblocks von gezeigt von str von CH.
Argumente:
Die Funktion dauert 3 Argumente:
Rückgabewerte:
memset () Gibt die erste Adresse des Speicherblocks zurück, von dem er beginnt, den Wert festzulegen.
Beispiele:
//Beispiel 1.C
In Beispiel1.c, wir haben ein Zeichenarray der Größe 30 deklariert. Dann haben wir es mit der String „ABCD EFGH initialisiert.In der Memset -Funktion haben wir 3 Argumente übergeben, Str, 'X' und 3. Der von STR gezeigte Speicherblock wird also die ersten 3 Zeichen durch 'x zurücksetzen.'Nach dem Memset erhalten wir, wenn wir den Speicher drucken, „xxxd efgh.”
In Beispiel2.c, wir haben Str+4 an die Memset -Funktion bestanden. Also setzte es den Speicher nach dem 4. Standort von STR zurück. Wenn wir den Speicher drucken, erhalten wir nach Memset „ABCDXXXGH.”
In Beispiel3.c, wir haben eine Ganzzahl -Reihe von Größe 5 deklariert und versucht, sie um 10 zu initialisieren. Aus der Ausgabe haben wir jedoch gesehen, dass das Array nicht um 10 initialisiert wird; Stattdessen haben wir den Wert "168430090". Dies liegt daran. Jetzt werden wir sehen, wie wir den Wert „168430090“ erhalten werden.
Die binäre Darstellung von 10 ist 0000000000000000 00000000 00001010.
Wenn die Ganzzahl in nicht signiertes Zeichen konvertiert wird, wird das untere 1 -Byte berücksichtigt. Wenn also 10 in nicht signiertes Zeichen umgewandelt wird, ist es eine binäre Darstellung 00001010.
Memset () -Funktion legt das Speicherort -Byte nach Byte fest. Insgesamt 4 Bytes sind: 00001010 00001010 00001010 00001010.
Der Dezimalwert der binären Darstellung von 4 Bytes beträgt 168430090.
// Beispiel4.C
In Beispiel4.c, wir haben das Ganzzahlarray um 0 initialisiert. Alle Bits der binären Darstellung von 0 sind 0. Das Array wird also durch 0 initialisiert.
In Beispiel5.c, wir haben das Ganzzahlarray um 0 initialisiert. Alle Bits der binären Darstellung von -1 sind 1. Das Array wird also durch -1 initialisiert.
Abschluss:
In diesem Artikel haben wir die Memset -Funktion verwendet, wie wir den Wert eines Speicherblocks effizient initialisieren oder festlegen können. Wir können jedes Zeichen und 0 oder -1 als Ganzzahlwert für einen Speicherblock einstellen. Die MEMSET -Funktion ist schneller, um einen großen Teil des zusammenhängenden Speichers im Vergleich zum Einstellen des Speichers mit einer Schleife festzulegen.