-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!newsfeed2.atman.pl!newsfe
ed.atman.pl!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-01.new
s.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
From: "slawek" <s...@h...pl>
Newsgroups: pl.comp.programming
Subject: Składnia pętli (ogólnie i filozoficznie)
Date: Sat, 17 Mar 2012 13:01:02 +0100
MIME-Version: 1.0
Content-Type: text/plain; format=flowed; charset="iso-8859-2"; reply-type=original
Content-Transfer-Encoding: 8bit
X-Priority: 3
X-MSMail-Priority: Normal
Importance: Normal
X-Newsreader: Microsoft Windows Live Mail 14.0.8117.416
X-MimeOLE: Produced By Microsoft MimeOLE V14.0.8117.416
Lines: 73
Message-ID: <4f647cff$0$1273$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 62.69.202.124
X-Trace: 1331985663 unt-rea-a-02.news.neostrada.pl 1273 62.69.202.124:63551
X-Complaints-To: a...@n...neostrada.pl
Xref: news-archive.icm.edu.pl pl.comp.programming:196118
[ ukryj nagłówki ]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.
Następne wpisy z tego wątku
- 17.03.12 13:01 bartek szurgot
- 17.03.12 16:19 Roman W
- 17.03.12 21:34 slawek
Najnowsze wątki z tej grupy
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-01-16 nie będzie naprawy pod blokiem?
- 2025-01-16 korytarz zycia
- 2025-01-16 Katowice => Key Account Manager (ERP) <=
- 2025-01-16 Środa Wielkopolska => Specjalista ds. public relations <=
- 2025-01-16 Poznań => Konsultant Wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-01-16 Gdańsk => Full Stack web developer (obszar .Net Core, Angular6+) <=
- 2025-01-16 Re: Bodnatura BARDZO tanio wyceniła Owsiaka. HAŃBA!
- 2025-01-16 Warszawa => Software .Net Developer <=
- 2025-01-15 Gdańsk => System Architect (Java background) <=
- 2025-01-15 Żerniki => Specjalista ds. Employer Brandingu <=
- 2025-01-15 Kraków => User Experience Designer <=
- 2025-01-15 CYA: Minister Finansów odbija piłeczkę do PKW :-) [obiektywny brak możliwości wykonania wewnętrznie sprzecznej uchwały]
- 2025-01-15 Gdańsk => Solution Architect (Java background) <=
- 2025-01-15 Zielona Góra => Senior Field Sales (system ERP) <=
- 2025-01-15 Wrocław => Application Security Engineer <=