eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaDziwny problem z kodem w C (gcc mips/pic32) › Re: Dziwny problem z kodem w C (gcc mips/pic32)
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.chmurka.net!.POSTED.aabj109.neoplu
    s.adsl.tpnet.pl!not-for-mail
    From: "J.F" <j...@p...onet.pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: Dziwny problem z kodem w C (gcc mips/pic32)
    Date: Fri, 19 May 2023 14:48:42 +0200
    Organization: news.chmurka.net
    Message-ID: <1og5mqdu9wcw$.15pkaxsp0shjy$.dlg@40tude.net>
    References: <u453bn$8ogn$2@dont-email.me> <u453ir$ool$1$grzegorz@news.chmurka.net>
    <u45668$94na$1@dont-email.me> <u458fc$sfo$1$grzegorz@news.chmurka.net>
    <u458jg$9a1b$2@dont-email.me> <u45935$sv9$1$grzegorz@news.chmurka.net>
    <u459ml$9a1b$3@dont-email.me> <u45agv$u3g$1$grzegorz@news.chmurka.net>
    <u45b25$9a1b$4@dont-email.me>
    <a...@n...icm.edu.pl>
    <u45goe$ad82$2@dont-email.me>
    <a...@n...icm.edu.pl>
    <u45jon$an6o$2@dont-email.me> <u47hnq$b7r$1$jdx@news.chmurka.net>
    <u47iae$l62t$2@dont-email.me> <u47jtb$ca6$2$jdx@news.chmurka.net>
    <u47kej$cod$1$grzegorz@news.chmurka.net>
    NNTP-Posting-Host: aabj109.neoplus.adsl.tpnet.pl
    MIME-Version: 1.0
    Content-Type: text/plain; charset="utf-8"
    Content-Transfer-Encoding: 8bit
    Injection-Info: news.chmurka.net; posting-account="jfoxwr";
    posting-host="aabj109.neoplus.adsl.tpnet.pl:83.4.35.109";
    logging-data="17054";
    mail-complaints-to="abuse-news.(at).chmurka.net"
    User-Agent: 40tude_Dialog/2.0.15.1
    Cancel-Lock: sha1:p0RZSJSXAc+2jfUtIRGyy4Xxkkg=
    sha256:sUWVDx2qnxOltmuqIkU1j9J3IGeaX6VRDE+MwSs6Gh4=
    sha1:J4Wq79HLpy2VDfZpon2xAU21be8=
    sha256:LPk0hyOEWV+SDInUQN6BxgAyuK+2JXAtvqR+cPuNtX4=
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:780713
    [ ukryj nagłówki ]

    On Fri, 19 May 2023 12:54:13 +0200, Grzegorz Niemirowski wrote:
    > JDX <j...@o...pl> napisał(a):
    >> No, czyli, służą do czego innego, więc jedno nie jest workaroudem na brak
    >> drugiego.
    > Jest, bo na tym polega workaround, że używasz czegoś nieprzeznaczonego do
    > danego celu. sizeof() nie służy do zwracania liczby elementów ale czasem
    > może dać poprawny wynik (dla typu jednobajtowego). Przy typie wielobajtowym
    > trzeba podzielić przez sizeof(typ_wielobajtowy). Można też w ogóle nie
    > używać sizeof() ale mieć stałą definiującą rozmiar i używać jej zarówno do
    > deklaracji tablicy jak i do dostępu do tej tablicy. Szczególnie przydatne
    > jak ta tablica jest potem gdzieś przekazywana i ktoś przez roztargnienie
    > mógłby zrobić sizeof() na wskaźniku i dostać (zwykle) 4 lub 8 zależnie od
    > architektury zamiast rozmiaru tablicy.

    W zwykłym C na przekazanej tablicy w ogole juz nie mozna ustalic
    rozmiaru.

    Jak rozmiar zmienny, to trzeba go jawnie przekazywać,
    jak stały, to mozna coz z typami kombinować.

    A sizeof to nawet nie funkcja, tylko operator i to "czasu kompilacji"
    - kompilator ustala ile wynosi wartosc.

    P.S. Nie ma jakis cudów związanych z rozmieszczeniem danych?
    Chodzi mi po głowie, ze MIPS lubil na granicy słów 32-bit,
    wiec np sruktura {int, char} może i ma 5 bajtów, ale
    w tablicy takie struktury byłyby rozmieszczone co 8 ...


    J.

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: