Aktywne Wpisy
klewerewel +2
#rozowepaski #polska #warszawa #zwiazki #pieklokobiet
Nigdy nie widziałam faceta pchającego wózek z dzieckiem. Dlaczego zawsze jest to matka?
Nigdy nie widziałam faceta pchającego wózek z dzieckiem. Dlaczego zawsze jest to matka?
![ProblemM8](https://wykop.pl/cdn/c3397992/ProblemM8_NWkOS3mqal,q60.jpg)
ProblemM8 +231
Ludziom mocno bambinizm wszedł. Mamy psa; partnerka pięści się nad nim jak dzieckiem. Ostatnio paznokcia sobie trochę rozwalił bo biegal jak wariat po ogrodzie. Ja mówię że trzeba zaczekać to mu odrośnie, przecież nie kuleje, ani nie wygląda źle. Ona że trzeba do weterynarza. #!$%@? pójdzie się kilkaset złotych znowu #!$%@?ć na 10 minutowa wizytę na której weterynarz powie to samo co ja (przerabiałem to już kilka razy)
A do tego nazywanie
A do tego nazywanie
#programowanie
Możesz zmapować obszar pamięci spod unii na strukturę. Tylko, że jak chcesz coś takiego zrobić to nie jest to dobra praktyka
Pomału przechodzę na std::variable, ale w embedded nie bardzo jest na to miejsce, zwłaszcza gdy trzeba ten obszar pamięci potem wysłać.
@kebab-case: Mam ramkę ogólną, a potem poszczególne przypadki w zależności od „funkcji”. Nic nie konwertuję, po prostu pakuję struktury jako pola w unii. Problem dopiero się pojawia przy dynamicznych strukturach.
Przede wszystkim trzeba zrozumieć różnicę pomiędzy strukturą, a unią, że w unii wszystko jest w tym samym obszarze pamięci (każde pole zaczyna się w pamięci w tym samym miejscu)
@kebab-case: Hmm, jak rozumiem unia i struktura musiałyby wtedy mieć identyczne pola o identycznych typach (kolejność chyba też ma znaczenie bo padding?), bo w przeciwnym wypadku to by się chyba wysrało? Ale nadal kurde bym się chyba bał ryzykować i wolałbym jawnie
int
ifloat
, to zapisując cokolwiek do tegofloat
rozwalisz to co jestint
. Oba pola współdzielą tą samą pamięć. W podanym przykładzie (dla x86) taka unia będzie zajmowała 4 bajty, a struktura 8 bajtów.1. Na podstawie różnicy w kodowaniu pomiędzy float a int komputer będzie w stanie powiedzieć która wartość idzie gdzie
Co do rzutowania, to C++ nie pozwoli dopóki nie napiszemy funkcji rzutującej (chyba że znowu używamy wskaźników, ale wtedy sytuacja analogiczna do C), a jak już napiszemy taką funkcję, to zachowa się to tak, jak to zaprogramujemy.
@Razi91: No czyli stanie się opcja 2. SegFault na Linuxie = Access Violation na Windzie. Co do tej poprawnej interpretacji nie jestem pewien, bo float i int mają chyba inne kodowanie, więc IMO tam będą bzdury. Tzn. mogą być bzdury z 50% szansą zależnie
W każdym razie castowanie unii na strukturę jest po prostu głupie