Posted By: snake (keeping on the sunny side) on 'CZdatabases'
Title:     Re: Strange things happen - ECPG na Postgresu 6.5.2
Date:      Thu Jan 27 01:27:58 2000

Ahoj lidi, Pajasofte zvlast!

No ja si fakt nemyslim, ze by to bylo nejakym nepochopenim Ccka (ne ze bych ho 
chapal, to rozhodne ne, ale hned vylozim, proci s to myslim):

1) preprocesor preklada priklad s promennou definovanou uvnitr i vne {} 
naprosto stejne. Do stejne funkce

2) kompilator zkompiluje vec bez problemu, bez hlaseni chyb a bez hlaseni 
warningu. Pritom rozdil je opravdu akorat v tom, ze jednou je promenna 
definovana uvnitr a jednou vne {}. Na nazvu promenne je to nezavisle.

3) pokud jsem zkousel priklad, kterej by pomoci printf zapisoval do 
ukazatele, kterej dostanu presne takovouhle definici - fungovalo to (naprosto 
bez problemu a presne tak, jak jsem ocekaval)

4) chyba nastava (system pada) kvuli tomu, ze funkce, do ktere to ECPG 
preklada - jednou ukazatel zmeni a podruhe ne. Zmeni ho ve chvili, kdy je 
promenna definovana vne {} a nezmeni ho (tj. chova se korektne), kdyz je to 
definovano uvnitr.

OK, pokud je to teda moje chyba a nepouzivam spravne syntaxi - jak zni tedy 
ta spravna (abych nemusel vzdycky definovat "nahradni" promennou, ktera je mi 
naprosto nanic - a pak vysledek kopirovat) definice? 

snake

P.S. (uspesne) vyreseni tohohle problemu jsem ochoten sponzorovat jednou 
cokoladou:-) 

>      A je to tu, presne to, o cem pise M. Virius ve Strasti a propasti
> jazyka 
> C++. Bohuzel i ja CASTO delam stejnou chybu a programy nekdy bezi, nekdy ne.
> 
> V C, ani v C++ NENI PRAVDA, ze POLE a UKAZATELE JEDNO JSOU!!!!
> NEJSOU!!!!!!!!!
> 
>      Ac se to clovek docte v mnoha knihach, neni to skutecne pravda a Virius
> 
> na celkem srozumitelnych prikladech dokazuje (a spravne), ze je to skutecne 
> nepochopeni pointeru u mnoha a mnoha lidi, vcetne radoby tech, kteri tvrdi, 
> ze by C mohli dokonce vyucovat.
> 
>      Osobne se domnivam, ze presne zalezi na tom, co ECPG s tim ukazatelem, 
> potazmo (2. pripad) &char [0], nakonec dela, program muze fungovat a
> nemusi...
> 
>      Dobry zpusob jak se podobny sracky odnaucit (a mne to nekdy pomuze) je 
> nedelat string = char *, ale predstavovat si to jako pole int... 
> 
>  ..s usmevem a laskou jde vsechno lip, nezapominejte na to v zivote..
> 
>                                                                     
> PaJaSoft

Search the boards