eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaAVR po latach › Re: AVR po latach
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!2.eu.feeder.erj
    e.net!3.eu.feeder.erje.net!feeder.erje.net!weretis.net!feeder8.news.weretis.net
    !news.mixmin.net!aioe.org!fJ3fCem/Ge388nCVHersJA.user.46.165.242.75.POSTED!not-
    for-mail
    From: Mateusz Viste <m...@x...invalid>
    Newsgroups: pl.misc.elektronika
    Subject: Re: AVR po latach
    Date: Fri, 19 Nov 2021 11:07:05 +0100
    Organization: . . .
    Message-ID: <20211119110705.49d9a36a@mateusz>
    References: <smreh5$3aj$1@dont-email.me>
    <a...@n...neostrada.pl>
    <sn3drv$13k$2@dont-email.me>
    <a...@n...neostrada.pl>
    <sn3h62$qna$1@dont-email.me>
    <a...@n...neostrada.pl>
    <sn3lbt$q5v$1@dont-email.me>
    <0...@g...com>
    <sn5ul0$2vi$1@dont-email.me> <2...@m...lan>
    <sn602a$cil$1@dont-email.me> <20211118180102.29f911cc@mateusz>
    <sn61hi$q5d$1@dont-email.me> <20211118182857.67ab36fc@mateusz>
    <sn632k$7cr$1@dont-email.me> <20211118191941.5cd5cbc8@mateusz>
    <sn66n0$2i0$1@dont-email.me> <20211118203536.2ed957df@mateusz>
    <1eohq79peodw1.1sh0vipcxxlku$.dlg@40tude.net>
    <20211119085719.54466a8e@mateusz> <sn7o55$3nb$1@dont-email.me>
    <1p1313ae4kxxs.1w6e1064h8fs0$.dlg@40tude.net>
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: quoted-printable
    Injection-Info: gioia.aioe.org; logging-data="29743";
    posting-host="fJ3fCem/Ge388nCVHersJA.user.gioia.aioe.org";
    mail-complaints-to="a...@a...org";
    X-Notice: Filtered by postfilter v. 0.9.2
    X-Newsreader: Claws Mail 3.18.0 (GTK+ 2.24.32; x86_64-suse-linux-gnu)
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:768519
    [ ukryj nagłówki ]

    2021-11-19 o 10:53 +0100, J.F napisał:
    > Niby owszem, ale mozna przeciez tez tak:
    >
    > void *buf = NULL;
    > int port = 0;
    >
    > buf = alokuj_bufor();
    > if (!buf) goto poleglem_buf;
    > if (!napisz_na_port() goto poleglem_write;
    > if (!odbierz_z_portu() goto poleglem_read;
    > return(sukces);
    >
    > poleglem_read:
    > poleglem_write:
    > zamknij_port();
    > poleglem_buf:
    > zwolnij_bufor();
    > return(fail);

    Maszynowo niewątpliwie czyściej, ale dostrzegam potencjalny
    problem w czynniku ludzkim - bo teraz programista musi wiedzieć, do
    którego labela wykonać jmp.

    Metoda "sprawdzam wszystko w jednym miejscu" ma tę zaletę, że jest
    bardzo łatwo w użyciu i trudno o pomyłkę. Fakt, zmarnujemy na tym kilka
    instrukcji JZ/JE, ale jeśli zależałoby nam na tak daleko posuniętej
    oszczędności, to po prostu użylibyśmy NASM... Swoją drogą, ciekawe jak
    RAII w C++ to tłumaczy. Domniemywam, że właśnie tak - bo przecież musi
    pamiętać/sprawdzać co zostało zainicjalizowane, a co nie. Sprawdzi ktoś?

    Mateusz

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: