eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingSkładnia pętli (ogólnie i filozoficznie)Re: Składnia pętli (ogólnie i filozoficznie)
  • Data: 2012-03-17 13:01:53
    Temat: Re: Składnia pętli (ogólnie i filozoficznie)
    Od: bartek szurgot <b...@n...spam> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On 03/17/2012 01:01 PM, slawek wrote:
    > Czy jest jakiś ładny sposób zapisu if-wewnątrz-for (ew. innych pętli)
    > takich, że jest GWARANTOWANE przeniesienie if przed for w wyniku
    > kompilacji, tak aby test if wykonywał się tylko jeden raz - a nie np. 10
    > milionów razy - i to bez sięgania po optymalizację?
    >
    > Jeżeli jest coś takiego for{ if } -- czyli instrukcja warunkowa
    > wewnątrz pętli, np.:
    >
    > for (i = 0; i < 10; i++)
    > if(x > y)
    > {
    > ...a...
    > ...b1...
    > ...c...
    > ...d...
    > ...e1...
    > ...f...
    > }
    > else
    > {
    > ...a...
    > ...b2...
    > ...c...
    > ...d...
    > ...e2...
    > ...f...
    > }
    >
    > Oczywiście kumaty kompilator (x i y są ustalone z zewnątrz) powinien to
    > sobie zoptymalizować do
    >
    > if
    > {
    > for
    > for
    > }
    >
    > Ale jak to zapisać bez potrzeby odwoływania się do mądrości kompilatora
    > i bez rozwlekania jak niżej?
    >
    > if(a > b)
    > for (i = 0; i < 10; i++)
    > {
    > ...a...
    > ...b1...
    > ...c...
    > ...d...
    > ...e1...
    > ...f...
    > }
    > else
    > for (i = 0; i < 10; i++)
    > {
    > ...a...
    > ...b2...
    > ...c...
    > ...d...
    > ...e2...
    > ...f...
    > }
    >
    > W kodzie źródłowym niepotrzebne są dublowane linie ...a... ...c...
    > ...d... ...f..., co jest nieprzyjemne jeżeli jest ich za mało aby robić
    > z nich procedurę (i nie chcemy mieć narzutów na call/ret - no, ale to
    > też powinien zoptymalizować kompilator) - a jednocześnie MUSZĄ one być
    > dokładnie takie same (i np. poprawka w jednym miejscu pociąga za sobą
    > poprawianie w tuzinie podobnych.


    poczytaj o metaprogramowaniu. w połączeniu ze wzorcem strategii, będzie
    to to, czego szukasz.

    --
    pozdrawiam serdecznie / best regards,
    bartek szurgot
    /* http://www.baszerr.org */

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: