nie,
Jak nie wyzerujesz to dostajesz zdupy wartość.
Wersja do druku
w c++ musisz zainicjalizować zmienną inaczej są tam śmieci z pamięci
wydaje mi się że to ze względu na optymalizację (żeby wyzerować trzeba wrzucić tam zero = kolejna operacja) jeżeli trzeba wyzerować to wtedy to robi programista
wiecie w jakim jezyku oni robia gry takie jak call of duty??
c++ ?
mam problem, podsuncie rozwiązanie mam funkcje odbieranie();
odbiera ona dane przeslane z innego uC, są to dwie zmienne w jaki sposób moge je przekazać do funkcji głównej lub innej funkcji w której zostaną odczytane/wyświetlone bo jak wiadomo poprzez return można zwracać tylko jedną zmienną. Czytałem coś o referencji, ale nie wiem zbytnio jak tego użyć.
coś takiego mi nie działa
Kod:void odbieraj(float *tmp,float *hmd)
{
deklaracja zmiennych
}
//tu jakies odbieranie
void main()
{
float tmp, hmd;
odbieraj(&tmp,&hmd);
}
@Chels ; podaj przykład jak możesz na tym co napisałem bo troche nei rozumiem a w tablice nie chce mi sie bawić
nie widze sensu w tym co napisales wyswietla ta zmienna globalna czyli tj 0 po co ona w ogóle tam jest
To zadnie jest prawdziwe, tylko dla zmiennych o automatycznym czasie przechowywania (np. zmienne lokalne). W przypadku zmiennych np. statycznych, kompilator sam ustawia jej wartosc domyslna.
C++, jednak kluczowe rzeczy zapewne są napiane w C (performance hit abstrakcji C++).
void odbieraj(float &raz,float &dwa)
{
raz = 11.3;
dwa = 55.1;
}
void main()
{
float tmp, hmd;
odbieraj(tmp,hmd);
cout << tmp<<endl;
cout << hmd;
}
tu masz przykład jak działa referencja. Wysyłasz do funkcji dwie puste zmienne jako referencje i w tej funkcji operacje są przeprowadzane na oryginalnych zmiennych.
Tylko że na razie przesłałeś tylko zmienne do których chcesz wrzucić te dane. Ale jako argumenty musisz jeszcze przekazać te dane z mikrokontrolera czyli musi mieć 4 argumenty. W ogóle gdzie ty masz te dane z mikrokontrolera. Czy one są polami jakiegoś obiektu czy jak w ogóle się do nich dostajesz?
no chyba normalnie, tylko że nie możesz tak bezpośrednio zwrócić i-1 bo to nie jest l-value która posiada adres tylko r-value więc rozbić to musisz i będzie działać tak samo:
Chyba że pytasz o ogólną praktykę używania tego w jakimś celu konkretnym to nie mam pojęcia. Trzeba mieć pewnie świadomość że operujemy cały czas na tej samej zmiennej i że nie są tworzone kopie.Cytuj:
Int in(int &i)
{
If(!i)return 0;
Else return
{
i-=1;
in(i);
}
}