• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Wrzucenie funkcji loop do innego pliku w projekcie (nie w INO tylko w .c)
#1
Witajcie,

Przygodę z Arduino zacząłem dość niedawno i mam pewien problem, którego sam nie rozwiążę bazując na swojej wiedzy. Czy możliwe jest, by przenieść funkcję wykonawczą LOOP z głównego pliku do pliku dodanego o rozszerzeniu .c, oczywiście zawartego w tym samym folderze projektowym? Nie mogę nigdzie znaleźć rozwiązania. Z góry serdecznie dziękuję za wszelkie pomoce.
 
Odpowiedź
#2
A po co tak kombinujesz?
Możesz w funkcji loop wywołać funkcje zawarte w pliku z rozszerzeniem .c tyle że w projekcjie musisz dołączyć jego plik nagłówkowy z rozszerzeniem .h.
Pomagam za darmo więc szanuj mój czas.
Wklejaj tekst a nie jego zdjęcie.
Nie pisz następnego postu jak nie odpowiedziałeś na poprzedni.
Jak mądrze zadawać pytania
 
Odpowiedź
#3
Faktycznie, można tak zrobić... czyli mogę wymyślić funkcję którą to raz wywołam w pętli loop (przy czym będzie to jedna linijka kodu w LOOP?) i całą zawartość pętli loop przenieść do tej funkcji? Muszę coś takiego zrobić bo czepia się mnie prowadzący na projekcie, że chce funkcję wykonawczą w oddzielnym dodatkowym pliku.
 
Odpowiedź
#4
W ogóle, dobrą praktyką programistyczną jest, jak to napisałeś "całą zawartość pętli loop" umieszczać w oddzielnych blokach. Czy to w funkcjach, strukturach, klasach - zależy co tam wykombinowałeś.
A to czy ty te swoje funkcje umieścisz w tym samym pliku co pętla główna, czy w oddzielnym, dla kompilatora nie ma znaczenia, ponieważ wywołanie funkcji, jest dla kompilatora, równoznaczne z jej wpisaniem w miejscu wywołania.
Pisanie funkcji i klas w oddzielnym pliku, niesie ze sobą niewspółmierne korzyści.
Możesz taką klasę (czy funkcję itp.) wykorzystać w innym projekcie, podając po prostu ścieżkę do pliku z tą klasą(czy funkcją itp.).
Pisanie funkcji w oddzielnych plikach, rządzi się swoimi prawami.
Musisz stworzyć dwa piki. Jeden z rozszerzeniem .h (lub .hpp, zależy od standardu) i drugi z rozszerzeniem .c (lub .cpp, zależy od standardu).
Plik nagłówkowy .h zawiera tylko deklaracje funkcji, plik .c zawiera ścieżkę do pliku .h oraz definicje funkcji.
Do pliku głównego (tego z funkcją główną) dołączamy plik nagłówkowy poleceniem: #include <ścieżka_do pliku.h>
Jeśli zawiera funkcje, to możemy po prostu te funkcje wywoływać, jeśli klasę, lub klasy, to budujemy na jej podstawie obiekt i pracujemy normalnie jak byśmy go skonstruowali w pliku głównym.
Jeśli masz problem z kodem lub sprzętem, zadaj pytanie na forum. Nie odpowiadam na PW, jeśli nie dotyczą one spraw forum lub innych tematów prywatnych.

[Obrazek: SsIndaG.jpg]
 
Odpowiedź
#5
Serdecznie dziękuję wszystkim za pomoc!
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości