-
Data: 2011-02-02 01:01:13
Temat: Re: które języki 'historyczne' sš ważne
Od: Jędrzej Dudkiewicz <j...@n...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 02/02/2011 01:06 AM, Andrzej Jarzabek wrote:
> On 01/02/2011 21:50, Marek Borowski wrote:
>>
>> Cos mam wrazenie ze mylicie systemy z systemami. Operacje bliskie
>> hardware najwygodniej sie robi w C. Jak np w innych jezykach wysokiego
>> poziomu deklarujesz wywolanie funkcji z pod konkretnego adresu he ?
>>
>> W C prosze bardzo:
>>
>> void (*fun)(void) = (void (*)(void))0xFC00;
>> fun();
>
> Naprawdę muszę pisać, jak to można zrobić w C++?
>
>> Jak po odebraniu pakietu dobierzesz sie do jego pol, bez dodatkowych
>> narzutow ?
>>
>> W C jest to trywialne:
>>
>> uint8_t *buffer;
>>
>> a po odebraniu;
>>
>> struct Packet* usb = (struct Packet*) buffer;
>>
>> usb->requestType i jedziemy.
>
> Naprawdę? Szkoda tylko, że jak piszesz tę strukturę, to musisz pilnować,
> żeby wszystkie pola były na swoim miejscu i żeby Ci kompilator nie
> namieszał paddingiem na przykład.
__attribute__((packed)), pola struktury nie mogą być przekładane.
> Jak w C zapiszesz pole pakietu, które jest zaczyna się od ósmego bajta i
> jest czterobajtową liczbą, powiedzmy bez znaku, zapisaną w formacie -
> uwaga - big endian?
Rozumiem, że chodzi o deklarację tego pola w strukturze? Otóż wstawię na
początek pól na łączną wartość 7 bajtów, potem wstawię czterobajtową
zmienną, a potem wywołam funkcję "preprocess_packet", która mi zawoła
ntohl i pochodne na wskazanych polach, w tym na tej zmiennej.
> W C++ za to możesz bez problemu wrapnąć bufor bajtowy w klasę, która
> jako dane pole udotępnia ci dajmy na to 14 bajt bufora albo wartość
> liczbową w natywnym formacie, zapisaną jako big endian na bajtach od 4
> do 7.
Jasne, ale w środku albo będziesz kopiował dane do oddzielnych pól, albo
będziesz trzymał wskaźniki do nich i wołał ntohl przy dostępie, albo
wstawisz powyższy syf. To trzecie ma najmniejszy narzut pamięciowy i
obliczeniowy w czasie wykonania.
Tak czy owak, zaletą C++ jest to, że jakby co, to można tego rozwiązania
użyć, ale znacznie ładniej zapakowanego.
JD
Następne wpisy z tego wątku
- 02.02.11 01:25 Michoo
- 02.02.11 02:22 Michoo
- 02.02.11 02:23 Michoo
- 02.02.11 06:30 Adam Przybyla
- 02.02.11 06:32 Grzegorz Krukowski
- 02.02.11 07:46 Andrzej Jarzabek
- 02.02.11 08:04 Tomasz Kaczanowski
- 02.02.11 08:05 Tomasz Kaczanowski
- 02.02.11 08:08 Krzysiek Kowaliczek
- 02.02.11 08:22 Krzysiek Kowaliczek
- 02.02.11 08:28 Krzysiek Kowaliczek
- 02.02.11 09:08 Stachu 'Dozzie' K.
- 02.02.11 09:09 Stachu 'Dozzie' K.
- 02.02.11 09:34 Maciej Sobczak
- 02.02.11 09:36 R. P.
Najnowsze wątki z tej grupy
- Rosjanie chwalą się prototypem komputera kwantowego. "Najważniejszy projekt naukowy Rosji"
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Re: Najgorszy język programowania
- 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!!!
Najnowsze wątki
- 2026-01-06 I kolejny
- 2026-01-06 Retro organizer ale współcześnie
- 2026-01-06 Bowling
- 2026-01-06 Cyganie
- 2026-01-06 Rozwód w Santanderze z prostokątną kobietą...
- 2026-01-06 Skąd diody LED 1,5V?
- 2026-01-06 Nowum!!! -- Moje ID
- 2026-01-06 Metoda na fotoradar
- 2026-01-05 I jeszcze jeden
- 2026-01-05 Jaworek;)
- 2026-01-05 Warszawa => Project Manager (AI and innovation) <=
- 2026-01-05 Gdańsk => Konsultant ERP Microsoft Dynamics 365 Commerce <=
- 2026-01-05 Jeśli nie było "aktu wojny" to była "zorganizowana grupa przestępcza" (terroryści) dokonująca zabójstw?
- 2026-01-05 Walka Lewicy o B2B na etat
- 2026-01-05 zamiana B2B na etat




5 Najlepszych Programów do Księgowości w Chmurze - Ranking i Porównanie [2025]