Arduino zwracają tablicę z funkcji
Ponieważ płyty Arduino są programowane za pomocą języka c/c ++, więc oba te języki nie pozwalają na zwrócenie tablicy do funkcji jako argumentu. Możemy jednak zwrócić tablicę z funkcji, określając nazwę tablicy bez żadnego indeksu.
Musimy zadeklarować funkcję zwracającą wskaźnik, jeśli chcemy zwrócić jednowymiarową tablicę z funkcji. Drugim punktem do zapamiętania jest to, że język C nie zezwala lokalnym zmiennym na zwracanie adresów poza funkcją, więc zmienne lokalne powinny być zadeklarowane jako statyczne, aby uniknąć jakiegokolwiek błędu kompilacji.
Opis
Podczas programowania płyt Arduino możemy zainicjować tablicę o określonym rozmiarze, po zainicjowaniu tablicy jego wartość można zastąpić za pomocą funkcji. Dynamiczny alokacja pamięci jest wymagane, gdy chcemy zwrócić tablicę, która jest inicjowana w funkcji. Zrobić to Malloc () I bezpłatny() Funkcje można stosować wraz z wskaźnikami w Arduino.
Problem polega na tym, że funkcja zwróci tablicę za pomocą dynamicznej alokacji pamięci, wynik może zostać zmieniony z powodu wycieku pamięci i wiszących wskazówek. Tak więc najlepszym sposobem zwrotu tablicy z funkcji jest zainicjowanie tablicy i zmiana jej wartości za pomocą funkcji zamiast zwracania całej tablicy z funkcji.
Utwórzmy funkcję, aby zmienić wartości tablicy, inicjując ją ze stałym rozmiarem całkowitym. Zobacz kod poniżej.
Przykładowy kod
const int rozmiar = 5; /*Zdefiniowany rozmiar tablicy*/W powyższym kodzie tablica jest inicjowana przy użyciu stałych liczb całkowitych, ponieważ jeśli nie używamy stałej liczby całkowitej, IDE wyświetli błąd. Tutaj, w danej tablicy, nie przechowyliśmy żadnych wartości, więc tablica zostanie zainicjowana z wartościami zerowymi, ale możemy również przechowywać wartości w tablicy podczas inicjalizacji.
Następnie stworzyliśmy Szyk() funkcja mając powrót typu nieważne do przechowywania wartości wewnątrz tablicy. Ponadto typ powrotu jest nieważny, ponieważ nie chcemy zwracać niczego, co musimy przechowywać tylko wartości, na wypadek, gdyby trzeba zwrócić wartość, możemy zmienić typ zwrotu według nich, taki jak int.
Następny Do Pętla jest używana do przechowywania wartości, ale możemy również przechowywać wartości ręcznie. Po tym użyciu Seryjny.wydrukować() Wyjście jest wydrukowane na monitor szeregowych.
Wyjście
Wartości drukowania wyjściowego od 0 do 4 Zwracanie tablicy z funkcji:
Wniosek
W tym artykule obejmuje wszystkie szczegółowe kroki, w jaki sposób możemy zainicjować tablicę za pomocą stałego typu danych liczb całkowitych i przechowywać wartość w środku za pomocą pętli dla. Później Szyk() funkcja jest wywoływana wewnątrz części instalacyjnej kodu Zwracanie tablicy z funkcji.