[elektro] Fw: C18 előfordító
Balla zoltán
sdrlab at yandex.ru
Wed Jun 17 12:17:34 CEST 2015
Feladó: "Kiss Gabor" <kissg at ssg.ki.iif.hu>
>Na tegyük fel, hogy minden úgy van, ahogy szeretnéd!
>A _fordító_ észreveszi, hogy egy "gyári" függvénynek csupa konstans
>(pontosabban fordításkor ismert értékű) argumentuma van,
>ezért _forditási_ időben meghívja azt, és az eredményt teszi a
>függvényhívás helyére.
>
>Ezt szeretnéd, ugye?
>
>Na akkor nézzük mi történik ebben az esetben!
>
>char *a, *b;
>int len;
>
>a=malloc(16);
>b=malloc(16);
>strcpy(a, "kutya");
>strcpy(b, "cica");
>printf("%s nem %s\n", a, b);
>
Nem ismerem a malloc függvény realizálását belülről, de nyilván memóriát
foglalni csak futásidőben értelmezett.
Ezért _sem_ kellene beletúrkálni a gyári függvényekbe, mert akkor a fordító
kapából tudja, mi az ami kiszámolható, mert értelmezhető rá a számolási
művelet, és mi az ami _csak_ futáskor...
Értem én, hogy a C lehetőséget ad a berhelésre, és ettől kezdve nincsenek
dedikált függvények. Az egész felvetésemnek az az alapja, hogy _nem_ nyúlunk
a gyári függvényekhez, mert minek ??!! Hisz enélkül is tökéletesen és gond
nélkül megoldható minden, akkor minek ?! Ha pedig mégis hozzányúlunk, mert
mi olyan profik vagyunk, akkor meg garantálnunk kell az eredetivel vali
visszafelé kompatibilitást. De ez már a saját felelősségünk. A fordító ekkor
még mindig korrektül járhat el, hisz tudja mely függvényeket számolhatja
előre ki, melyeket nem.
Zoli
More information about the Elektro
mailing list