-
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!.PO
STED!not-for-mail
From: Jędrzej Dudkiewicz <j...@n...com>
Newsgroups: pl.comp.programming
Subject: Re: które języki 'historyczne' sš ważne
Date: Wed, 02 Feb 2011 02:01:13 +0100
Organization: http://onet.pl
Lines: 56
Message-ID: <iiaacp$8mk$1@news.onet.pl>
References: <2...@n...onet.pl>
<f...@t...askar.com.pl>
<4d470681$0$2436$65785112@news.neostrada.pl>
<r...@4...com>
<4d47519c$0$2437$65785112@news.neostrada.pl> <ii8g1j$768$1@news.onet.pl>
<4d47d675$0$2447$65785112@news.neostrada.pl> <ii8l0l$7j3$1@solani.org>
<4d47fdf5$0$2456$65785112@news.neostrada.pl> <ii90a6$hdr$1@news.onet.pl>
<4d480625$0$2456$65785112@news.neostrada.pl> <ii9256$prk$1@news.onet.pl>
<ii9v6d$vi$1@news.onet.pl> <iia75c$f2o$1@inews.gazeta.pl>
NNTP-Posting-Host: 234-dzi-16.acn.waw.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: news.onet.pl 1296608473 8916 82.210.159.234 (2 Feb 2011 01:01:13 GMT)
X-Complaints-To: n...@o...pl
NNTP-Posting-Date: Wed, 2 Feb 2011 01:01:13 +0000 (UTC)
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101209
Fedora/3.1.7-0.35.b3pre.fc14 Thunderbird/3.1.7
In-Reply-To: <iia75c$f2o$1@inews.gazeta.pl>
Xref: news-archive.icm.edu.pl pl.comp.programming:188514
[ ukryj 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
- 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??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-02-07 Jaki silikon lub może klej?
- 2025-02-07 Gdańsk => iOS Developer (Swift experience) <=
- 2025-02-07 Warszawa => Starszy Programista C <=
- 2025-02-07 Niby to nie sąd ale kooorwa tak to w sądach dziś wygląda?
- 2025-02-06 PROGRAM DOPŁAT DO AUT ELEKTRYCZNYCH TO ABSURD. ZA ŚRODKI Z KPO KUPIMY NIEMIECKIE I CHIŃSKIE AUTA
- 2025-02-05 ceny OC
- 2025-02-05 Re: ceny OC
- 2025-02-05 Re: ceny OC
- 2025-02-07 Smar do video
- 2025-02-06 Litowe baterie AA Li/FeS2 a alkaliczne
- 2025-02-07 Gliwice => Business Development Manager - Network and Network Security
- 2025-02-07 Warszawa => System Architect (Java background) <=
- 2025-02-07 Warszawa => System Architect (background deweloperski w Java) <=
- 2025-02-07 Warszawa => Solution Architect (Java background) <=
- 2025-02-07 Gliwice => Ekspert IT (obszar systemów sieciowych) <=