Ik had de volgende code in een applicatie staan:
Ik had geen idee waarom die niet meer werkte met VC8 (met VC6 werkte die wel) totdat ik er wat beter naar keek.
De j++ wordt blijkbaar uitgevoerd voor de (tweede) j.
Hierdoor is de code dus dubbelzinnig, maar waarom genereert de compiler hier eigenlijk geen warning voor?
C++:
1
| serial[j++] = (1000 - s.data()[i] % 10 + (serial[j] - '0')) % 10 + '0'; |
Ik had geen idee waarom die niet meer werkte met VC8 (met VC6 werkte die wel) totdat ik er wat beter naar keek.
De j++ wordt blijkbaar uitgevoerd voor de (tweede) j.
Hierdoor is de code dus dubbelzinnig, maar waarom genereert de compiler hier eigenlijk geen warning voor?
[ Voor 4% gewijzigd door Olaf van der Spek op 29-03-2006 15:04 ]