eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikas->tab[i]Re: s->tab[i]
  • X-Received: by 10.49.40.168 with SMTP id y8mr787921qek.9.1368772904826; Thu, 16 May
    2013 23:41:44 -0700 (PDT)
    MIME-Version: 1.0
    X-Received: by 10.49.40.168 with SMTP id y8mr787921qek.9.1368772904826; Thu, 16 May
    2013 23:41:44 -0700 (PDT)
    Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
    .pl!news.nask.org.pl!news.unit0.net!news.glorb.com!news-out.readnews.com!news-x
    xxfer.readnews.com!209.85.216.88.MISMATCH!gj8no920802qab.0!news-out.google.com!
    y6ni49017qax.0!nntp.google.com!gj8no920798qab.0!postnews.google.com!m4g2000vbr.
    googlegroups.com!not-for-mail
    Newsgroups: pl.misc.elektronika
    Date: Thu, 16 May 2013 23:41:44 -0700 (PDT)
    Complaints-To: g...@g...com
    Injection-Info: m4g2000vbr.googlegroups.com; posting-host=217.10.52.10;
    posting-account=LtRNCAoAAAACVwjGJC66ygSl50zdeDtv
    NNTP-Posting-Host: 217.10.52.10
    References: <5195a18b$0$1266$65785112@news.neostrada.pl>
    User-Agent: G2/1.0
    X-HTTP-UserAgent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0;
    SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729;
    Media Center PC 6.0; InfoPath.2; MS-RTC LM 8; .NET4.0C;
    .NET4.0E),gzip(gfe)
    Message-ID: <2...@m...googlegroups.com>
    Subject: Re: s->tab[i]
    From: Marcin <m...@o...pl>
    Injection-Date: Fri, 17 May 2013 06:41:44 +0000
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:647274
    [ ukryj 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: