In dit voorbeeld is dat geen wereldschokkend verschil: als je ze in een if( ) gebruikt komen beiden op hetzelfde neer. Maar kijk eens naar deze:.oisyn schreef op vrijdag 19 december 2008 @ 01:16:
7 & 5 is dan ook heel wat anders dan 7 && 5 (respectievelijk 5 en true)
C:
1
2
3
4
5
6
| if ( 2 && 4 ) { /* wordt uitgevoerd, beide argumenten zijn namelijk "niet nul" dus het resultaat is 1. */ } if ( 2 & 4 ) { /* wordt niet uitgevoerd, resultaat van de bitwise-and is 0. */ } |
Trouwens: ANSI C kent niet iets als "true" en "false." Het resultaat van een bitwise AND is een int met waarde 1 of 0. En ja, ik ben bekend met C99. Maar een hoop compilerbouwers helaas nog niet, na slechts een jaar of tien...
[ Voor 7% gewijzigd door netvor op 19-12-2008 10:45 ]
Computer Science: describing our world with boxes and arrows.