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)
  • Data: 2023-05-22 21:30:22
    Temat: Re: Dziwny problem z kodem w C (gcc mips/pic32)
    Od: "J.F" <j...@p...onet.pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On Mon, 22 May 2023 18:29:29 +0200, heby wrote:
    > On 22/05/2023 18:08, J.F wrote:
    >>>> A zwraca wynik w bajtach, w elementach, czy to się po prostu wie? :-)
    >>> Zwraca rozmiar.
    >> Ale rozmiar w elementach, czy w bajtach? :-P
    >
    > Rozmiar tablicy.
    > Co kogo obchodzi jej rozmiar w bajtach, poza allokatorami?

    A może chcę zapisać na dysk?

    >>> 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
    >
    > C++ nie wspiera UTF-8. Nie wspiera też Mazovii ani ATASCI.

    Ale programy wymagają UTF-8.
    To sobie klase zdefiniuje ... taki u8string :-)

    >> No i ... jak to mieszane z innym systemem, to tam -1, tzn 0xff moze
    >> oznaczać True ... albo i false
    >
    > U mnie true i false są zdefiniowane przez standard.

    W C/C++

    A to moze być np program do komunikacji z czytnikiem kart bankowych.


    > Patrz, jeszcze jeden powód żeby porzucić guano C.

    Przeciez w C tez są zdefiniowane przez standard.
    Tylko trochę słabo.
    Albo lepiej niz w C++, bo brak wartosci nieokreślonych :-)

    >> obfuscate jednak cieszy sie popularnoscią ... tzn jako ciekawostka,
    >> niekoniecznie w praktyczny użytku.
    > Nie przejdzie przez review.

    Oby.
    Bo jak bedzie dobrze zaciemniony ... to przejdzie ?


    >>> 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?
    > To *ty* sie zwalniasz.

    Ja sie rozumiem z zespołem :-)

    >> Którzy dbają o swoje pensje ? :-)
    > Dużo nie zrobią hackując zamiast programować.

    Zaraz tam hackować ...

    >>> 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#
    >
    > Teraz znowu eskalujesz do zupełnie innego języka. To nieuczciwe.

    Jest i w C++. Tylko nie moge znależć dokumentacji MS.

    Taki tam mały przykład
    https://www.functionx.com/vccli/controls/dgv.htm

    > To że Fordy się psują nie oznacza, że nie powinieneś kupować Mazdy.

    oj, ja bym tam sprawdził kto komu rozwiązania narzuca :-)
    Bo może Mazda to juz nie Mazda.
    Choc akurat związki z Fordem ma juz dosc stare.

    >> deklaruję DataGridView, i się zastanawiam - ma to miejsce na dane, czy
    >> nie ma?
    > Pisanie obiektowe, szczególnie modelów danych, wymaga ogólnej orientacji
    > w temacie modelowania danych. Nie bez powodu płaci się tym ludziom
    > więcej niż wklepywaczom faktur.
    >
    >> A jak przypiszę w DGV DataTable, to użyje tego DT, przepisze na swoje
    >> struktury, rozszerzy, czy jeszcze cos innego ...
    >
    > Zazwyczaj masz określoną złożonośc operacji. Reszta, to detale
    > implementacyjne.

    Nie o to chodzi.
    Sorry za zmiane z c++ na .net/c#, ale masz klase DataGridView,
    która jest taką tabelką na ekranie,
    https://learn.microsoft.com/en-us/dotnet/api/system.
    windows.forms.datagridview?view=windowsdesktop-7.0

    i zawiera obiekt( właściwość?) Rows, któwy jest kolekcją wierszy,
    zawierających dane. Wiersze typu DataGridViewRow

    Ale mozesz też podłączyc inne źródło danych
    https://learn.microsoft.com/en-us/dotnet/api/system.
    windows.forms.datagridview.datasource?view=windowsde
    sktop-7.0#system-windows-forms-datagridview-datasour
    ce

    np typ DataTable, która zawiera DataRow.

    I sie teraz nie interesuj jak to jest zrobione, tylko powiedz
    czy np mogę kolor komórki zmienić?
    Albo co się stanie, jak wpiszę nową wartość w komórkę?

    Albo np chcę jakąs funkcje wywołać po kolei dla dla wszystkich
    wierszy, czy dla zakresu wierszy ... szybka sprawa, bo kolekcja
    Rows juz sie składa z pojedynczych wierszy, czy taki pojedynczy
    wiersz trzeba będzie dopiero zbudować?

    Nie bez powodu doświadczeni programiści zarabiają dużo, a juniorzy
    mało :-)

    >>> 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
    >
    > Wrappery na BLAS/LAPACK są bardzo cienkie. Nie wiem w jaki magiczny
    > sposób miały by liczyć coś wolniej, keidy 99.99% kodu to ten sam kod co
    > w Fortranie.

    Być moze te wrappery obchodzą problemy, ale ... Fortran potrafi
    operowac na liczbach zespolonych, bo to jego natywny typ.
    W c++ to typ skonstruowany z innych. Jako, że było za wolno,
    to nawrzucano inline.
    Ale nadal, jak gdzies jest zwracana wartosc zespolona, to fortran
    używał dwóch rejestrów, a c++ ... nie musi budować obiektu?

    >> Taa ... pisze sobie DataTable[i]["nr_klienta"] i myślę sobie ... jak
    >> będą narzekać na wydajność, to będę myslał, nie teraz :-)
    >
    > Ludzie piszący poważny soft myślą o tym. Przesadzasz w drugą stronę
    > starając się udowodnić koncept, że kod obiektowy jest wolniejszy, bo
    > programista dupa.

    Nie tylko, wszystko robią, żebym sie jak d* zachowywał :-)

    >> 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" :-(
    >
    > Myślę, że nie rozumiesz jakie problemy rozwiązuje się z użyciem C++. C
    > też magicznie nie wyczaruje więcej RAMu. Probem z algorytmiką i miejscem
    > jest dokładnie taki sam. Natomiast C++ oferuje gotowe, przetestowane
    > algorytmy operujące na tych danych. Co w przypadku C zazwyczaj oznacza
    > qsotr i tyle, reszta to kwadratowe koła wymyślane przez brodatych
    > 60-latków z założeniem, że nikt inny nie wpadł na ich popsute
    > rozwiązanie.

    No fakt, sort w c++ szybki ... zrobili
    wieloprocesorowo/wielordzeniowo?

    > Nie zliczę ile widziałem hash map napisanych w C. Każda
    > inna. I każda nieuniwersalna, nieprzetestowana inaczej jak na produkcji.

    owszem ... ale czy nie wynika to z tego, ze różne wymagania, czy różne
    optymalizacje mogą być?

    a ta z c++ dobra na wszystko? I wydajna?

    > C to taki język, gdzie wszystko można. I niestety to powoduje radosną
    > twórczość i walenie kijem w pieniek.

    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: