[cpp] symfonia, makrodefinicja..

0

#define KWD(a) ( (a) * (a) )

...

int x=4,p;

..
p = KWD(x++);

w symfonii p wynosi (po obliczeniu) 20 a mi wychodzi 16...

p = ( (x++) * (x++) ) <<------ jak wytlumaczyc to dzialanie ? co sie stanie z 'x' ?

0

#define KWD(a) ( (a) * (a) )

...

int x=4,p;

..
p = KWD(x++);

w symfonii p wynosi (po obliczeniu) 20 a mi wychodzi 16...

p = ( (x++) * (x++) ) <<------ jak wytlumaczyc to dzialanie ? co sie stanie z 'x' ?

Moim zdaniem bedzie tak:
p = KWD(x++) czyli p = ( (4) * (5) ) gdyz po napotkaniu pierwszej postinkrementacji x zostanie zwiększony o jeden stad w nastepnym odniesieniu co do x = 5. Gdybys zastosowal ++x</code> zamiast <code>x++ to faktycznie mialbys 16.

[Dopisane]

Sorki oczywiscie przy drugim sposobie mialbys 30 :P

0

ok juz rozumie :] dzieki

1 użytkowników online, w tym zalogowanych: 0, gości: 1