-
Data: 2015-12-04 21:26:46
Temat: Re: Pakowanie struktur
Od: "M.M." <m...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On Friday, December 4, 2015 at 2:18:45 PM UTC+1, Maciej Sobczak wrote:
> > Rozmawialiśmy o
> > szczególikach, typu:
> > 1) można się przejechać na big/lit endian
> > 2) najpierw memcpy, potem operator rzutowania
> > 3) różny padding w strukturach
> > 4) różny rozmiar inta na różnych platformach lub wersjach programu.
>
> Właśnie te szczególiki powodują, że te triki to złe rozwiązania.
Mają swoje zalety. Gdy mam dużą strukturę, którą będę modyfikował w
przyszłości i gdy użyję:
write( &struct , sizeof(struct) , 1 )
to:
1) w jednej linii kodu zapisuję/odczytuję całą strukturę.
2) strukturę mogę dowolnie modyfikować, a zapis i odczyt zawsze
zadziała.
> > aktywne unikanie tego ryzyka zajmuje
> > czas. Zobacz jak łatwo rypnąć się po poprawce pól w strukturze.
>
> Jeśli problemem jest czas lub poprawki pól w strukturach (ale przecież protokół
miał być znany?), to taki kod można wygenerować. Po to są standardy w rodzaju ASN.1 i
jemu podobne. Albo nawet niestandardowe, ale poręczne wynalazki typu MessagePack.
> Co do czasu - ogólnie, pisanie poprawnych programów może zająć więcej czasu, niż
niepoprawnych. Ale akurat poprawna obsługa protokołu sieciowego to jest jedno z tych
miejsc, gdzie oszczędność czasu na etapie kodowania się nie opłaca.
Zgodzę się z Tobą, ale tylko w przypadku bardzo dużych aplikacji. W mały i w
średnich programach to co proponujesz moim zdaniem jest przerostem
formy nad treścią.
Pozdrawiam
Następne wpisy z tego wątku
- 07.12.15 10:14 Tomasz Kaczanowski
- 07.12.15 12:02 M.M.
- 07.12.15 15:12 Maciej Sobczak
- 07.12.15 15:40 M.M.
- 07.12.15 16:22 witek
- 07.12.15 17:05 M.M.
- 07.12.15 18:40 witek
- 07.12.15 19:03 Sebastian Biały
- 07.12.15 19:29 M.M.
- 07.12.15 19:41 M.M.
- 07.12.15 19:55 witek
- 07.12.15 20:06 M.M.
- 07.12.15 20:25 witek
- 07.12.15 20:34 Sebastian Biały
- 07.12.15 21:30 M.M.
Najnowsze wątki z tej grupy
- NOWY: 2025-09-29 Alg., Strukt. Danych i Tech. Prog. - komentarz.pdf
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
Najnowsze wątki
- 2025-12-03 Zegarynka w roku 1950
- 2025-12-03 Zbiegł z miejsca wypadku
- 2025-12-02 logowanie do wifi
- 2025-12-02 przelew przychodzący Alior
- 2025-12-02 Czyli już wolno "likwidować" rozbitków USA? [Wzajemności zasada najświętszą jest]
- 2025-12-01 #motodziennik 356 - 3.0TDI wraca, Tesla z PRZYCISKAMI, Fiat 500 z ceną, OPŁATA DROGOWA od ELEKTRYKÓW
- 2025-12-01 Białystok => Konsultant Microsoft Dynamics AX/365 SCM Consultant - Se
- 2025-12-01 Białystok => Dynamics 365 Commerce/POS Developer <=
- 2025-12-01 Białystok => Konsultant ERP Microsoft Dynamics 365 Commerce <=
- 2025-12-01 Białystok => React Developer with knowledge of C++ <=
- 2025-12-01 Poznań => Specjalista ds. Marketingu Online (PPC) <=
- 2025-12-01 Białystok => Microsoft Dynamics 365 Finance Consultant <=
- 2025-12-01 Warszawa => Fullstack PHP Developer <=
- 2025-12-01 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2025-12-01 Wrocław => Programista React ze znajomością C++ <=




Ile kosztują tanie mieszkania w polskich metropoliach?