eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingktóre języki 'historyczne' są ważneRe: które języki 'historyczne' sš ważne
  • Data: 2011-02-02 00:06:03
    Temat: Re: które języki 'historyczne' sš ważne
    Od: Andrzej Jarzabek <a...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    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.

    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?

    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.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: