Hva er memset () i Arduino
MEMSET er en funksjon som brukes i Arduino -programmering som kan lagre et bestemt antall byte hentet fra en gitt verdi til destinasjonen. Ved hjelp av denne funksjonen kan vi kopiere en byte av verdi til destinasjonsminneblokkbyte av byte.
Nå vil vi diskutere bruken av memset () -funksjonen i Arduino -programmering.
memset () syntaks
memset (destinasjon, verdi, n_bytes);
memset () parametere
Memset () -funksjonen har tre parametere:
1: Destinasjon
Destinasjoner indikerer minnestedet der minneblokkverdien vil bli satt av byte av byte. Enhver type verdi kan settes her i form av byte. Forrige verdi vil bli erstattet av n antall byte. Hvis n er større enn størrelsen på destinasjonsobjektet, vil utgangsatferden være udefinert.
2: Verdi
Dette er kildepunktet som karakteren vil bli kopiert til destinasjonsminneblokken. Her er verdien i heltall, men den vil bli konvertert til usignert karakter før den kopieres.
3: n_bytes/lengde
Dette indikerer antall byte som skal settes i destinasjonsblokken. Memset () -funksjonen vil ta spesifikke n byte fra en gitt verdi og lagre den inne i destinasjonsminneblokken.
Hvordan bruke memset () i arduino
I Arduino brukte vi memset () for å angi data fra n byte av gitt verdi til destinasjon med spesifisert antall byte. memset () kopierer eller erstatter gitt n verdi byte til hver av de første n -tegnene i destinasjonsblokken.
For å få mer forståelse for memset () -funksjonen vil vi ta en Arduino -skisse og prøve å kopiere en N -byte til vår destinasjonsarray.
void setup ()
Serie.Begin (115200);
Char Destination [14] = "Linuxhint.com ";
Serie.println ("før memset destinasjon:");
Serie.println (destinasjon);
memset (destinasjon, '.', 5*størrelse av (røye)); /* Fyll de første 5 tegnene fra destinasjon [14] med '.' */
Serie.println ("etter memset destinasjon:");
Serie.println (destinasjon);
retur 0;
ugyldig sløyfe ()
I eksemplet ovenfor har vi erklært karakteroppstillingen mål. Størrelsen på char -arrayen er 14.
I neste linje etter å ha erklært røyevariabelen, har vi skrevet ut utdataene fra destinasjonsarrayen på seriemonitoren som "Før memset -destinasjon”.
Etter det har vi henrettet en memset () funksjon som vil erstatte destinasjonsarrayen med de fem første tegnene med verdien “.”Og resten av matrisen vil forbli som det er. Her multiplisert verdien med størrelse av (røye) vil avgjøre antall byte som skal byttes ut i destinasjonsminneblokken eller matrisen.
I linje 8 trykket vi utdataene fra destinasjonsarrayen etter å ha brukt memset () -funksjonen på seriemonitoren. Bilde representasjon av memset () -funksjonen kan gis som nedenfor:
Utgang på seriell skjerm er vist i figur nedenfor:
Hvordan tømmer jeg en matrise i Arduino
For å tømme en matrise i Arduino bruker vi også memset () -funksjonen. Bare forskjellen er nå vi vil kopiere 0 eller null til n byte i destinasjonsminneblokken. Når alle karakterene på matrisen er satt til 0, vil matrisen være tom. La oss ta et eksempel skisse og erstatte alle tegnene til en matrise med 0.
void setup ()
Serie.Begin (115200);
Char Array [14] = "Linuxhint.com ";
Serie.println ("før memset array:");
Serie.println (matrise);
memset (array, '0', 13*størrelse av (char)); / *Fyll alle 13 tegnene med 0 */
Serie.println ("Etter memset -array:");
Serie.println (matrise);
retur 0;
ugyldig sløyfe ()
I koden ovenfor har vi initialisert seriell kommunikasjon ved å definere baudfrekvens etter at vi definerte en char -matrise "Linuxhint.com”Med strenglengde på 14.
Deretter trykte vi matrisen på seriemonitoren før vi bruker memset () -funksjonen.
I linjen 7 er memset () -funksjonen definert som vil erstatte alle char -arrayverdiene til null byte av byte. Alternativt kan vi si at vårt utvalg nå er tomt som inneholder ingen byteverdier. Nedenfor er en illustrasjon av all koden som vil gi bedre forståelse.
Utgang fra seriell skjerm
Alternativt kan vi også erstatte alle array -enheter med null eller null. Dette er en annen måte å tømme en matrise uten å vise nulltegn i output. Vi må bare endre memset () funksjonsverdien som skal kopieres til '\ 0'.
memset (matrise, '\ 0', 13*størrelse av (char));
Konklusjon
I denne artikkelen har vi lært hvordan memset () -funksjonen brukes i Arduino -programmering. Memset () -funksjonen i Arduino kan angi eller erstatte alle arrayverdier byte byte. Videre diskuterte vi hvordan denne funksjonen er nyttig for å tømme en matrise. Ved hjelp av denne funksjonen kan du optimalisere den generelle kodeytelsen.