-
Data: 2015-12-03 15:05:04
Temat: Re: Pakowanie struktur
Od: Tomasz Kaczanowski <kaczus@dowyciecia_poczta.onet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu 2015-12-03 15:00, M.M. pisze:
> On Thursday, December 3, 2015 at 2:34:00 PM UTC+1, Tomasz Kaczanowski wrote:
>> W dniu 2015-12-03 14:08, M.M. pisze:
>>> On Thursday, December 3, 2015 at 1:09:14 PM UTC+1, Tomasz Kaczanowski wrote:
>>>
>>>> i gdzieniegdzie będzie mały bum, bo *((int*)(buf+2)); może mieć zdziebko
>>>> inną zawartość, niż nam się wydaje,
>>>
>>> Nie rozumiem. W jakich sytuacjach może mieć inną zawartość? Na moje
>>> albo reprezentacja bitowa się zgadza, albo nie. Jeśli nie, to w
>>> ogóle nie można używać kopiowania bitów.
>>
>> Tam gdzie zmienne muszą mieć wyrównane adresy. O ile w przypadku
>> spakowanej struktury przy odczycie kompilator wykona za nas odpowiednie
>> operacje, to w takim przypadku, gdy rzutujesz dane spod adresu, mówisz
>> kompilatorowi "wiem co robię, nie wtrącaj się", a, że wynik może w takim
>> przypadku być inny, cóż...
>
> To przy operacji:
> *((int*)(buf+2))
> kompilator nie wygeneruje takiego samego kodu jak przy wypakowaniu
> inta przesuniętego o 2 bajty w strukturze? Myślałem że na danej
> platformie kompilator bezpiecznie przerzuci dane na wyrównany adres i
> dopiero potem zacznie operować na tych danych.
z doświadczenia wiem, że nie poprawne było dopiero
int zmienna;
memcpy(zmienna, (buf+2), sizeof(int));
--
Kaczus
http://kaczus.ppa.pl
Następne wpisy z tego wątku
- 03.12.15 15:20 Maciej Sobczak
- 03.12.15 16:08 M.M.
- 03.12.15 16:19 M.M.
- 03.12.15 16:21 witek
- 03.12.15 16:23 M.M.
- 03.12.15 17:29 Maciej Sobczak
- 03.12.15 17:45 witek
- 03.12.15 17:56 M.M.
- 03.12.15 18:02 M.M.
- 03.12.15 18:15 M.M.
- 03.12.15 18:37 witek
- 03.12.15 18:40 witek
- 03.12.15 18:57 M.M.
- 04.12.15 09:43 Tomasz Kaczanowski
- 04.12.15 14:18 Maciej Sobczak
Najnowsze wątki z tej grupy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
Najnowsze wątki
- 2025-02-19 Lista afer
- 2025-02-19 Lista afer
- 2025-02-19 Lista afer PIS
- 2025-02-19 Ogrodzenie dla krów szkockich "Highland"
- 2025-02-19 Gdańsk => System Architect (background deweloperski w Java) <=
- 2025-02-19 Gdańsk => Solution Architect (Java background) <=
- 2025-02-19 Białystok => Data Engineer (Tech Leader) <=
- 2025-02-19 Kraków => Ekspert IT (obszar systemów sieciowych) <=
- 2025-02-19 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-02-19 Rzeszów => International Freight Forwarder <=
- 2025-02-19 Poznań => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-02-19 Chrzanów => Spedytor Międzynarodowy (handel ładunkami/prowadzenie f
- 2025-02-19 Bieruń => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-02-19 Nigdy
- 2025-02-19 Katowice => Key Account Manager (ERP) <=