c: hi-tech 9,80, interrupt asm
Pavel Hudeček
edizon na seznam.cz
Čtvrtek Duben 3 09:38:50 CEST 2014
Vždycky jsem si myslel, že moderní překladače dělají různé optimalizace, např. na rychlost, nebo na velikost. Čekal bych, že při takové příležitosti samozřejmě dojde k podobné analýze. A když beru v úvahu, jak dlouho to mnohdy trvá, tak by ně nepřekvapilo, kdyby program prošel třeba 10x. Ale po 11. kvůli přerušení je teda asi už moc:-)
PH
Od: Tomáš Hamouz
Jestli po tom kompilátoru nechcete moc.
Pokud by se měl chovat tak jak píšete, tak by musel kompilovat
dvakrát, poprvé když narazí na danou funkci a podruhé, když už ví
jaké další funkce volá. Protože ve vašem případě v okamžiku kompilace
o volané funkci nic neví, počítá s nejhorší variantou.
Linker jen doplní adresy externích objektů, ale do vlastního kódu
funkce už nezasahuje.
> To je logická domněnka, Já myslel, že si to nejdřív všechno připraví a pak
> to slinkuje dohromady. V té přípravě jsem předpokládal, že si právě osahá
> všechny funkce. Pravdou je, pokud se podívám na "profi" programy od
> Microchipu, tak veškeré podprogramy jsou na začátku a samotná hlavní
> procedura, která volá podprogramy je vždy na konci. Takže asi tohle bude
> důvod.
Další informace o konferenci Hw-list