[C con Clase] expresión &=

Steven Davidson srd4121 en njit.edu
Mie Mayo 7 17:51:37 CEST 2008


Hola Pablo,

pabloc en cimne.upc.edu wrote:
> Hola,
> 
> Que significado tiene esta expresión ;
> 
> bool inside; inside=true;
> 
> 
> inside &= lambda[j] >= 0
> 
> donde lambda es un vector.
> 

Estás usando la verdad resultante de la expresión condicional 'lambda[j] 
 >= 0'. Posteriormente , la veracidad forma parte de una operación AND 
con el valor original de 'inside'. El resultado de tal operación es 
asignado a 'inside'.

De todas maneras, no aconsejo usar esta sentencia porque el operador &= 
que es a nivel de bits no está diseñado para que funcione con valores 
booleanos. 'false' se convierte en 0 (cero) y viceversa. Sin embargo, 
con 'true', no tenemos un valor específico; sólo sabemos que no es 0 (cero).

Por lo tanto, en la sentencia anterior, no sabemos qué va a pasar. Lo 
más seguro es que no tendremos muchos problemas, pero no puedo 
asegurarlo para todos los compiladores.


Espero que esto aclare la duda.

Steven





Más información sobre la lista de distribución Cconclase