Includy v C (CCS 550)

Jan Waclawek konfera na efton.sk
Čtvrtek Červenec 17 18:47:15 CEST 2014


On pravdepodobne ten kompilator, co pan kolega Hudecek pouziva, nevie robit
link-time optimalizacie. Ono je to dost komplikovana zalezitost, a
napriklad aj gcc ma LTO len odnedavna a su tam este chyby.

Ale tych metodik, ako s tym vybabrat aj u kompilatora, ktory vie
optimalizovat len v ramci suboru, je viacero. Jednou z nich je oznacovanie
vkladanych funkcii ako static (inline), inou je schovavat "funkcie" do
makier; vsetko to ma svoje uskalia.

Ja si svoju potrebu pisat sucasti programov "zoskupene" inak, nez je
zvykom, uspokojujem pouzivanim jedneho vlastneho "preprocesora" naviac
(efton.sk/nyweb).

wek



>Aha, chápu.
>
>Ale pøi dostateènì drsné optimalizaci dostanete stejné nebo lep¹í výsledky - on pak liker vyhazuje i volání funkcí a 
>nahrazuje to pøímo výkonným kódem, pokud je funkce dostateènì malá. Ale chce to vìdìt co nedìlat, respektive se dr¾et 
>striktnì specifikace jazyka aby to pak je¹tì dìlalo to co si autor pøedstavoval :-).
>
>Pravda debug s takto agresivní optimalizací je ponìkud tì¾kopádný a vy¾aduje i trochu jiný styl pøi ladìní. Ale dá se.
>
>Ale stejnì je to dneska zvrhlost, ale pokud to dìláte pro sebe, tak co je nám po tom :-D.
>
>ced
>
>Dne 17.7.2014 18:03, Pavel Hudeèek napsal(a):
>> To jsem taky jeden èas dìlával, ale pak mì to pøe¹lo, kdy¾ jsem to zas musel likvidovat, a¾ do¹lo místo ve flashce:-)
>>
>> PH
>>
>>
>> Od: Josef ©tengl <ok1ced at nagano.cz>
>>
>>     Proto¾e místo #include <inicializace.c> by mìlo být. Je to takový dal¹í vývoj programování :-)
>>
>>     #include <inicializace.h>
>>
>>     void main() {
>>     unsigned char n;
>>
>>     inicializace();
>>     .....
>>     .....
>>     while(1) {
>>     .......
>>     .......
>>     }
>>     }
>>



Další informace o konferenci Hw-list