[elektro] Fw: C18 előfordító

Kiss Gabor kissg at ssg.ki.iif.hu
Wed Jun 17 09:25:47 CEST 2015


On 06/16/2015 12:20 AM, Balla zoltán wrote:
> Feladó: "Lajos Rancz" <lajos.rancz at gmail.com>
>> Már csak azért sem tudja, hogy a log(8)/log(2) az 3, mert a fordítási
>> egységben csak egy include van és emiatt csak a függvény definíciója áll
>> rendelkezésre (bármit lehet a log függvény belsejében /pl logolás/ nem
>> vagy
>> köteles a libc-vel összelinkelni).
>>
> Igazad van, ez logikus érvelés!
> Bár nekem fura kicsit, hogy amikor ravaszabbnál ravaszabb
> optimalizálásokat láthatunk, pont egy ilyet ne lehetne eldönteni, hogy
> ha nincs sehol log függvény megírva a programban, ellenben be van
> includolva a gyári könyvtár, akkor biztos nem valami elvont log függvény
> lesz az !! Persze...értem én, hogy perverzióból akár át is lehet írni a
> gyári függvényt...

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);

:-)

kissg



More information about the Elektro mailing list