Wie die Memset -Funktion in Arduino verwendet wird, um ein Array zu leeren

Wie die Memset -Funktion in Arduino verwendet wird, um ein Array zu leeren
Arduino -Boards können mit IDE programmiert werden. Arduino IDE -Programmierungstechniken sind wie C- und C ++ - Sprachen. Wenn jemand eine gute Erfahrung mit diesen beiden Sprachen hat, kann er die Arduino -Sprache leicht übernehmen. Die Arduino -Programmierung basiert auf vereinfachten Versionen von C und C++. Die Arduino -Sprache bietet uns viele Funktionen, die zur Verbesserung der Effizienz von Arduino Boards verwendet werden können. Eine dieser Funktionen ist Memset Dies hilft den Benutzern, mit Arrays besser umzugehen. Hier werden wir diskutieren, wie Memset in der Arduino -Programmierung verwendet wird.

Was ist memset () in Arduino

Das Memset ist eine Funktion, die in der Arduino -Programmierung verwendet wird, mit der eine bestimmte Anzahl von Bytes speichern kann, die aus einem bestimmten Wert zu seinem Ziel entnommen wurden. Mit dieser Funktion können wir ein Wert Byte in das Zielspeicherblock -Byte nach Byte kopieren.

Jetzt werden wir die Verwendung der Memset () -Funktion in der Arduino -Programmierung diskutieren.

memset () syntax

memset (Ziel, Wert, n_bytes);

memset () Parameter
Die Funktion memset () hat drei Parameter:

1: Ziel
Ziele geben den Speicherort an, an dem der Speicherblockwert byte durch Byte festgelegt wird. Jeder Wertstyp kann hier in Form von Byte festgelegt werden. Der frühere Wert wird durch n Anzahl von Bytes ersetzt. Wenn n größer als die Größe des Zielobjekts ist, wird das Ausgangsverhalten undefiniert nicht definiert.

2: Wert
Dies ist der Quellpunkt, aus dem das Zeichen in den Zielspeicherblock kopiert wird. Hier ist der Wert in Ganzzahl, wird jedoch in nicht signiertes Zeichen konvertiert, bevor er kopiert wird.

3: n_bytes/Länge
Dies zeigt die Anzahl der Bytes an, die im Zielblock festgelegt werden sollen. Die Funktion memset () nimmt spezifische N -Bytes aus einem bestimmten Wert und speichert sie im Zielspeicherblock.

So verwenden Sie Memset () in Arduino

In Arduino haben wir Memset () verwendet, um Daten aus N -Bytes des gegebenen Wertes an das Ziel mit der angegebenen Anzahl von Bytes festzulegen. memset () kopiert oder ersetzt angegebene N -Wert -Bytes für jedes der ersten n Zeichen im Zielblock.

Um mehr Verständnis für die Memset () -Funktion zu erhalten.

void setup ()
Serie.Beginnen Sie (115200);
char destination [14] = "LinuxHint.com ";
Serie.println ("vor dem Memset -Ziel:");
Serie.println (Ziel);
memset (Ziel, '.', 5*sizeof (char)); /* Füllen Sie die ersten 5 Zeichen ab Ziel [14] mit '.' */
Serie.println ("After Memset Destination:");
Serie.println (Ziel);
Rückkehr 0;

Hohlraumschleife ()

Im obigen Beispiel haben wir das Charakter -Array deklariert Ziel. Die Größe des Char -Arrays beträgt 14.

In der nächsten Zeile, nachdem wir die Char -Variable deklariert haben, haben wir die Ausgabe des Zielarrays auf dem seriellen Monitor als "ausgedrucktVor dem Memset -Ziel”.

Danach haben wir a ausgeführt memset () Funktion, die das Zielarray durch die ersten fünf Zeichen durch den Wert ersetzt “.Und der Rest des Arrays bleibt so wie es ist. Hier der Wert multipliziert mit Größe (char) Bestimmt die Anzahl der Bytes, die im Zielspeicherblock oder im Array ersetzt werden sollen.

In Zeile 8 haben wir die Ausgabe des Zielarrays nach dem Auftragen der Memset () -Funktion auf dem seriellen Monitor gedruckt. Die bildliche Darstellung der Funktion von memset () kann wie unten angegeben werden:

Die Ausgabe des Seriennachs ist in Abbildung unten dargestellt:

Wie leere ich ein Array in Arduino?

Um ein Array in Arduino zu leeren, verwenden wir auch die Funktion memset (). Jetzt kopieren wir nur den Zielspeicherblock mit 0 oder null zu n Bytes des Zielspeicherblocks. Sobald alle Zeichen des Arrays auf 0 gesetzt sind, ist das Array leer. Nehmen wir eine Beispielskizze und ersetzen Sie alle Zeichen eines Arrays durch 0.

void setup ()
Serie.Beginnen Sie (115200);
Zeichenarray [14] = "LinuxHint.com ";
Serie.println ("vor Memset -Array:");
Serie.println (Array);
memset (array, '0', 13*sizeof (char)); / *Füllen Sie alle 13 Zeichen von Array mit 0 */
Serie.println ("After Memset Array:");
Serie.println (Array);
Rückkehr 0;

Hohlraumschleife ()

Im obigen Code haben wir zunächst die serielle Kommunikation initialisiert, indem wir die Baudrate definiert haben, danach haben wir ein Char -Array definiertLinuxHint.com”Mit einer Saitenlänge von 14.

Als nächstes druckten wir ein Array auf dem seriellen Monitor, bevor wir die Funktion memset () anwenden.

In Zeile 7 wird die Funktion memset () definiert, die alle Zeichen -Array -Werte auf Null Byte durch Byte ersetzt. Alternativ können wir sagen, dass unser Array jetzt leer ist und keine Bytewerte enthält. Unten ist eine Darstellung des gesamten Code.

Ausgabe des Seriennachels

Alternativ können wir auch alle Array -Entitäten durch Null oder Null ersetzen. Dies ist eine weitere Möglichkeit, ein Array zu entleeren, ohne Nullzeichen in der Ausgabe anzuzeigen. Wir müssen nur den Funktionswert memset () ändern, der auf 'kopiert werden soll'\ 0''.

memset (array, '\ 0', 13*sizeof (char));

Abschluss

In diesem Artikel haben wir erfahren, wie die Memset () -Funktion in der Arduino -Programmierung verwendet wird. Die Funktion memset () in Arduino kann jedes Array -Werte Byte durch Byte einstellen oder ersetzen. Darüber hinaus haben wir besprochen, wie hilfreich diese Funktion bei der Entleerung eines Arrays ist. Mit dieser Funktion können Sie die Gesamtcodeleistung optimieren.