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.aags33.neoplus
    .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: Mon, 22 May 2023 18:08:15 +0200
    Organization: news.chmurka.net
    Message-ID: <mwxft3rl50ae$.ikk8r2nn1eah$.dlg@40tude.net>
    References: <u44i3o$css$1$Janusz@news.chmurka.net>
    <euc9wpavjaek$.1ud2an3ug601i.dlg@40tude.net>
    <u47qkf$g6n$3$Janusz@news.chmurka.net>
    <1n7r9mmnvljlx$.1jfideb1i3wtk.dlg@40tude.net>
    <u4844m$ltg$1$Janusz@news.chmurka.net>
    <rtiszuef0xpp$.15wa1gq4oc00s$.dlg@40tude.net>
    <u48fof$sii$1$Janusz@news.chmurka.net>
    <a...@n...icm.edu.pl>
    <u49s6u$q89$1$Janusz@news.chmurka.net>
    <a...@n...icm.edu.pl>
    <u4a34r$tmk$1$Janusz@news.chmurka.net>
    <u4a9ch$10h$1$grzegorz@news.chmurka.net>
    <u4ab0s$1t2$1$Janusz@news.chmurka.net>
    <u4afc0$4ad$1$grzegorz@news.chmurka.net> <u4b7p6$1j7m6$3@news.icm.edu.pl>
    <90dql20u82tc.fnrqd8gmq8nh$.dlg@40tude.net>
    <u4fjtn$25f5e$1@dont-email.me> <d2a2opi2cqx.dpbk606pibnh$.dlg@40tude.net>
    <u4fmll$25qd5$1@dont-email.me>
    <13gsg2icl2peg.ptxnu29vcxr9$.dlg@40tude.net>
    <u4fsru$26eq7$1@dont-email.me>
    NNTP-Posting-Host: aags33.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="aags33.neoplus.adsl.tpnet.pl:83.4.174.33";
    logging-data="31633";
    mail-complaints-to="abuse-news.(at).chmurka.net"
    User-Agent: 40tude_Dialog/2.0.15.1
    Cancel-Lock: sha1:4a7vRr52jk9EeQ++0bstNZzJsu4=
    sha256:P0UqDTt1QGTkVA7A1nWCMnb2BIMdRwjSq2i10CApxnE=
    sha1:RvdewwnZNwUT+0dWCpIn6b6bnNg=
    sha256:qUVJwgoju7H2eUlkTsHYE3tKMyAN/EFm+EW5y0hlWZg=
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:780797
    [ ukryj nagłówki ]

    On Mon, 22 May 2023 16:05:38 +0200, heby wrote:
    > On 22/05/2023 15:36, J.F wrote:
    >>> std::size() jest znacznie bardziej przejrzysty, niż sizeof/sizeof i to
    >> A zwraca wynik w bajtach, w elementach, czy to się po prostu wie? :-)
    >
    > Zwraca rozmiar.

    Ale rozmiar w elementach, czy w bajtach? :-P

    > Dla różnych typów zachowa się to jak zahardkodowana stała, zawołanie
    > metody obiektu albo zostanie policzone na etapie kompilacji. Dzięki
    > magii C++ wybór implementacji jest automatyczny.
    >
    > Ale to bez znaczenia, piszesz na poziomie na którym interesuje Cie
    > *rozmiar* i już. Stringa, tablicy, wektora, listy. Rozmiar. Cokolwiek to
    > oznacza.
    > To jest właśnie wysokopoziomowe określenie potrzeby.

    > W dodaku działa tak samo dobrze dla tablic i dla znacznie bardziej
    > skomplikowanych kontenerów czy nawet głupich stringów.

    stringa powiadasz ... bajtowego, unicode, utf-8 ? :-P

    >>> wystarczy dla podniesienia jakosci i bezpieczeństwa. Takich konstrukcji
    >>> jest wiele w C++ i nie operaja się one o jakieś trudne do ogarnięcia
    >>> mechanizmy. Są wręcz trywialne.
    >> Chyba, ze złośliwy programista przedefiniuje, bo może :-)
    >
    > To samo może i w C.
    > Widziałem kod gdzie było:
    > #define TRUE 0

    > Zostawione w 1 pliku cpp na złość, przez niemiłego kodera-hackera.
    > Gdybym nie miał tego pliku w historii to bym uznał to za jakas
    > anegdotkę, a jednak kosztowało to kogoś dzień debugowania.

    Możliwości jednak mniej, ale trzeba uważać :-)

    No i ... jak to mieszane z innym systemem, to tam -1, tzn 0xff moze
    oznaczać True ... albo i false

    > Tak, trafiają
    > się w tym zawodzie idioci, schizofrenicy, hackerzy, zarozumialcy,
    > złośnicy. Mamy skuteczne metody ich eliminacji i utrudniania takich
    > sabotaży.

    obfuscate jednak cieszy sie popularnoscią ... tzn jako ciekawostka,
    niekoniecznie w praktyczny użytku.

    A takie np jQuery ... to juz nic nie trzeba zaciemniac :-)

    >>> Nikt nie nakazuje używania skomplikowanego dziedziczenia czy operatorów.
    >>> Nikt. To kwestia wyboru przez programistę. Mądry programita nie wybierze
    >>> ich tylko dla beki. A na niemądrych jest lint i code review.
    >> No nie wiem, czy zauważy, ze size() działa w danym obiekcie inaczej,
    >> albo ze "+" oznacza teraz odejmowanie :-)
    >
    > Nie, ponieważ:
    > a) programiści w zespołach nie są względem siebie złosliwi w normalej
    > sytuacji. A jak są, drzwi otwarte.
    > b) sami ustalają co można, a co nie, używać i z czym czują się komfortowo.

    A jak to jest zespół złośliwych programistów?
    Którzy dbają o swoje pensje ? :-)

    > c) świadomośc tego jak coś działa w detalach jest przeciwieństwem
    > współczesnego pisania wysoko abstrakcyjnego kodu
    > d) są do tego unit testy, aby pilnować takich dupereli
    > e) istotą size() jest to, aby działało w kazdym obiekcie/typie tak, jak
    > tego się spodziewasz po słowie "rozmiar".
    >
    > Jedną z najtrudniejszych sztuczek jakie miałem w swojej karierze, jako
    > osoba ucząca nowych członków zespołu, to była potrzeba wyplenienia z
    > nich potrzeby wiedzy o tym jak coś działa w środku. Przestawienie
    > programisty C z asemblera na myślenie abstrakcyjne jest nadludzkim
    > wysiłkiem i nie w każdej sytuacji udało się.

    Taa ... a ja potem sobie w "jeszcze lepszym" C#
    deklaruję DataGridView, i się zastanawiam - ma to miejsce na dane, czy
    nie ma?
    A jak przypiszę w DGV DataTable, to użyje tego DT, przepisze na swoje
    struktury, rozszerzy, czy jeszcze cos innego ...

    > Wielu z nich nie potrafi
    > inaczej myśleć niż pointerami, przez co współczesny kod C++ traktują
    > dokładnie tak jak połowa ludzi w tym wątku - z wyparciem i urojeniami na
    > temat jego wydajności.

    A na macierzach zespolonych operuje już równie szybko jak Fortran,
    czy nie bardzo ? :-P


    Taa ... pisze sobie DataTable[i]["nr_klienta"] i myślę sobie ... jak
    będą narzekać na wydajność, to będę myslał, nie teraz :-)

    Albo czasem myslę "a ile może być tych rekordów w bazie ... milion?
    To sobie wczytam wszystko do pamieci, a jak wyleci z błędem,
    to sie dopisze "wymagane co najmniej 16GB RAM" :-(

    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: