Jak funkcja memset jest używana w Arduino do opróżnienia tablicy

Jak funkcja memset jest używana w Arduino do opróżnienia tablicy
Tablice Arduino można zaprogramować za pomocą IDE. Techniki programowania Arduino IDE są jak języki C i C ++. Jeśli ktoś ma dobre doświadczenie tych dwóch języków, może łatwo przyjąć język Arduino. Programowanie Arduino opiera się na uproszczonych wersjach C i C++. Język Arduino zapewnia nam wiele funkcji, które można użyć do poprawy wydajności tablic Arduino. Jedną z tych funkcji jest mems który pomaga użytkownikom w lepszym radzeniu sobie z tablicami. Tutaj omówimy, w jaki sposób Memset jest używany w programowaniu Arduino.

Co to jest memset () w Arduino

Memset to funkcja używana w programowaniu Arduino, która może przechowywać określoną liczbę bajtów pobranych z danej wartości do miejsca docelowego. Korzystając z tej funkcji, możemy skopiować jeden bajt wartości do docelowego bajtu bloku pamięci przez bajt.

Teraz omówimy użycie funkcji memset () w programowaniu Arduino.

Składnia memset ()

memset (miejsce docelowe, wartość, n_bytes);

parametry memset ()
Funkcja memset () ma trzy parametry:

1: miejsce docelowe
Miejsca docelowe wskazują lokalizację pamięci, w której wartość bloku pamięci zostanie ustawiona bajt przez bajt. Każdy rodzaj wartości można ustawić tutaj w formie bajtu. Poprzednia wartość zostanie zastąpiona liczbą b bajtów. Jeśli n jest większy niż rozmiar obiektu docelowego, zachowanie wyjściowe zostanie niezdefiniowane.

2: Wartość
Jest to punkt źródłowy, z którego znak zostanie skopiowany do docelowego bloku pamięci. Tutaj wartość jest w liczbie całkowitych, ale zostanie przekonwertowana na znak niepodpisany, zanim zostanie skopiowany.

3: N_Bytes/długość
Wskazuje to liczbę bajtów, które mają być ustawione w bloku docelowym. Funkcja memset () przyjmie określone n bajty z danej wartości i przechowuje ją w bloku pamięci docelowej.

Jak używać memset () w Arduino

W Arduino użyliśmy memset () do ustawiania danych z b bajtów o danej wartości do miejsca docelowego z określoną liczbą bajtów. memset () kopiuje lub zastępuje podane n bajty wartości dla każdego z pierwszych n znaków w bloku docelowym.

Aby uzyskać lepsze zrozumienie funkcji memset (), weźmiemy szkic Arduino i spróbujemy skopiować bajt do naszej tablicy docelowej.

void setup ()
Seryjny.rozpocząć (115200);
cecha ceny [14] = "Linuxhint.com ";
Seryjny.println („przed miejscem docelowym memset:”);
Seryjny.println (miejsce docelowe);
memset (miejsce docelowe, '.', 5*sizeof (char)); /* Wypełnij pierwsze 5 znaków, zaczynając od miejsca docelowego [14].' */
Seryjny.println („po miejscu docelowym memet:”);
Seryjny.println (miejsce docelowe);
powrót 0;

Void Loop ()

W powyższym przykładzie zadeklarowaliśmy tablicę znaków miejsce docelowe. Rozmiar tablicy charytatywnej wynosi 14.

W następnym wierszu po ogłoszeniu zmiennej char, wydrukowaliśmy wyjście tablicy docelowej na monitorze szeregowym jako „Przed miejscem docelowym memet".

Następnie wykonaliśmy memset () funkcja, która zastąpi tablicę docelową pierwszymi pięcioma znakami wartością „.”A reszta tablicy pozostanie taka, jak jest. Tutaj wartość pomnożona z sizeof (char) określi liczbę bajtów, które zostaną zastąpione w docelowym bloku pamięci lub tablicy.

W wierszu 8 wydrukowaliśmy wyjście tablicy docelowej po zastosowaniu funkcji memset () na monitorze szeregowym. Obrazową reprezentację funkcji memset () można podać jak poniżej:

Wyjście na monitorze szeregowym pokazano na rysunku poniżej:

Jak opróżnić tablicę w Arduino

Aby opróżnić tablicę w Arduino, używamy również funkcji memset (). Tylko różnica jest teraz skopiujemy 0 lub null do n bajtów bloku pamięci docelowego. Gdy wszystkie znaki tablicy zostaną ustawione na 0, tablica będzie pusta. Weźmy przykład szkicu i wymień wszystkie znaki tablicy 0.

void setup ()
Seryjny.rozpocząć (115200);
Char Array [14] = "Linuxhint.com ";
Seryjny.println („przed memset array:”);
Seryjny.println (tablica);
memset (tablica, „0”, 13*sizeof (char)); / *Wypełnij wszystkie 13 znaków tablicy 0 */
Seryjny.println („After Memset Array:”);
Seryjny.println (tablica);
powrót 0;

Void Loop ()

W powyższym kodzie najpierw zainicjowaliśmy komunikację szeregową, definiując wskaźnik Bauda po tym zdefiniowaliśmy tablicę char ”Linuxhint.com”Z długością ciągu 14.

Następnie wydrukowaliśmy tablicę na monitorze szeregowym przed zastosowaniem funkcji memset ().

W wierszu 7 definiuje się funkcję memset (), która zastąpi wszystkie wartości tablicy charytatycznej na bajt zerowy bajtem. Alternatywnie możemy powiedzieć, że nasza tablica jest teraz pusta, zawierająca wartości bajtów. Poniżej znajduje się ilustracja całego kodu, który zapewni lepsze zrozumienie.

Wyjście monitora szeregowego

Alternatywnie możemy również zastąpić dowolne podmioty tablicy zerową lub zerową. To jest inny sposób opróżnienia tablicy bez wyświetlania zerowych znaków w wyjściu. Musimy tylko zmienić wartość funkcji memset (), którą należy skopiować na '\ 0'.

memset (tablica, „\ 0”, 13*sizeof (char));

Wniosek

W tym artykule dowiedzieliśmy się, w jaki sposób funkcja memset () jest używana w programowaniu Arduino. Funkcja memset () w Arduino może ustawić lub wymienić dowolny bajt wartości tablicy przez bajt. Dalej omówiliśmy, w jaki sposób ta funkcja jest pomocna w opróżnianiu tablicy. Korzystając z tej funkcji, możesz zoptymalizować ogólną wydajność kodu.