c-kod

Jan Waclawek konfera na efton.sk
Pátek Únor 10 14:18:46 CET 2017


>Musíte si uvědomit, jak preprocesor funguje. Prochází text a kdyµ
>narazí na makro, příslu±ným způsobem ho nahradí. To opakuje tak
>dlouho, dokud je co nahrazovat. Přitom se nahrazuje v pořadí od
>začátku do konce (wek by jistě dodal odkaz do normy).

C99 6.10.3 

Len doplnim, ze aj ked navonok to ma zrejme podobny efekt, ale v
skutocnosti je preprocesor jednoprechodovy, rovnako ako vacsina podobnych
nastrojov tej doby (to bol taky akysi gral v tom case). Takze aj norma to
popisuje tak, ze prekladac si postupne uklada #define tak ako na ne
narazi, bez akehokolvek spracovania; potom pre kazde "slovo" co nie je
sucast preprocesorovej direktivy prehladava zoznam tych #define (od
zaciatku ako pan kolega poznamenal) a ak najde zhodu, v zdrojovom texte
spravi tu nahradu a zacne hladat odznova (su tam este rozni mali diablici,
ale na to si precitajte povodny text). Aby ten popis s "znova prechadza
text" s tymto sedel, treba doplnit "ale len po bod kde sa nahradza".

wek

PS. Aky je vysledok preprocesingu
--- priklad 1
#define fred bill
#define joe fred
joe
--- priklad 2
#define joe fred
#define fred bill
joe
--- priklad 3
#define joe fred
joe
#define fred bill
--- priklad 4
#define joe fred
#define fred bill
#define bill joe
joe





Daląí informace o konferenci Hw-list