-
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.
Następne wpisy z tego wątku
- 22.05.23 18:29 heby
- 22.05.23 21:30 J.F
- 22.05.23 22:29 heby
- 23.05.23 15:10 JDX
- 23.05.23 15:27 JDX
- 23.05.23 15:35 Grzegorz Niemirowski
- 23.05.23 15:56 heby
- 23.05.23 16:00 heby
- 23.05.23 16:11 Grzegorz Niemirowski
- 23.05.23 16:22 heby
- 23.05.23 16:35 Grzegorz Niemirowski
- 23.05.23 16:52 heby
- 23.05.23 17:21 Grzegorz Niemirowski
- 23.05.23 17:26 titanus
- 23.05.23 18:19 heby
Najnowsze wątki z tej grupy
- DS1813-10 się psuje
- Taki tam szkolny problem...
- LIR2032 a ML2032
- SmartWatch Multimetr bezprzewodowy
- olej psuje?
- Internet w lesie - Starlink
- Opis produktu z Aliexpress
- No proszę, a śmialiście się z hindusów.
- Zewnętrzne napięcie referencyjne LM385 1,2V -> 100mV dla ICL7106, Metex M-3800
- karta parkingowa
- Wl/Wyl (On/Off) bialy/niebieski
- I3C
- Pytanie o transformator do dzwonka
- międzymordzie USB 3.2 jako 2.0
- elektronicy powinni pomysleć o karierze elektryka
Najnowsze wątki
- 2024-11-24 Aby WKOOOORWIĆ ekofaszystów ;-)
- 2024-11-22 OC - podwyżka
- 2024-11-22 wyszedł z domu bez buta
- 2024-11-22 Bieda hud.
- 2024-11-24 DS1813-10 się psuje
- 2024-11-23 Białystok => Inżynier bezpieczeństwa aplikacji <=
- 2024-11-23 Szczecin => QA Engineer <=
- 2024-11-23 Warszawa => SEO Specialist (15-20h tygodniowo) <=
- 2024-11-22 Warszawa => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-11-22 Warszawa => Senior Account Manager <=
- 2024-11-22 Warszawa => Key Account Manager <=
- 2024-11-22 Warszawa => DevOps Specialist <=
- 2024-11-22 Kraków => IT Expert (Network Systems area) <=
- 2024-11-22 Warszawa => Infrastructure Automation Engineer <=
- 2024-11-22 Warszawa => Presales / Inżynier Wsparcia Technicznego IT <=