eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikas->tab[i]Re: s->tab[i]
  • Data: 2013-05-17 08:41:44
    Temat: Re: s->tab[i]
    Od: Marcin <m...@o...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On May 17, 5:18 am, "Zbynio" <i...@d...pl> wrote:
    > Witam,
    > AvrStudio AVR
    > Czy taka operacja może się źle skompilować ?
    >
    > Mam strukturę i do niej wskaźnik i w niej tablice i różne takie
    >
    > i gdzieś w kodzie robie sobię
    >
    > while (i--) {
    > s->tab[i] = s->costam[i];
    >
    > albo coś podobnego tyle, że
    >
    > uint8_t *ptr = (uint8_t *) &struktura;
    >
    > i dalej to samo
    >
    > while (i--) {
    > s->tab[i] = ptr[i];
    >
    > Czy ma to prawo nie działać ?  Tak jakby się dane nie przepisywały.

    Przy zalozeniu, ze "s" to wskaznik na strukture a nie sama struktura,
    powinno byc ok. Na szybko sobie sprawdzilem w Keilu na inny procesor,
    czy z punktu widzenia C jest ok.
    Wersja "s->tab[i] = ptr[i];" troche optymistycznie przyjmuje, ze adres
    poczatku struktury jest tozsamy z poczatkiem pierwszej tablicy w niej
    zawartej (jesli jest pierwszym elementem struktury). Tu bedzie
    probowac przepisywac kolejne bajty z poczatku struktury do tablicy,
    bedacej gdzies w tej strukturze. Jak dla mnie to ryzykowne, pozniejsze
    zmiany w typedef structury na pewno cos popsuja.
    Marcin

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: