Prototype
BOOL EValue::MaskSetEx( T tMaskToSet,
BOOL bAdd );

Cette fonction applique le masque tMaskToSet sur la variable membre m_tValue en utilisant soit l'opérateur de bits | soit les opérateurs de bits & et ~ suivant la valeur de bAdd.

Cette fonction se différencie de la fonction EValue::MaskSet car elle retourne TRUE ou FALSE si la variable membre m_tValue a été modifiée par l'appel.

 

Argument

T tMaskToSet

valeur à appliquer soit comme masque d'ajout ou soit comme masque de suppression.

BOOL bAdd

si égale à TRUE, la valeur tMaskToSet est ajoutée à la variable membre m_tValue, sinon supprimée.

 

Retour

BOOL

si la variable membre m_tValue est différente d'avant l'appel de la fonction, elle retourne TRUE, sinon FALSE.

 

Exemple

Description :

• Instancier un objet EValue de type uchar initialisé avec la valeur 0xF0 (11110000),
• Ajouter le masque de bits 0x03 (00000011) avec stockage de la valeur de retour,
• Supprimer le masque de bits 0x0C (00001100) avec stockage de la valeur de retour,
• Afficher si l'application du premier masque de bits a modifié l'objet eValue,
• Afficher si l'application du second masque de bits a modifié l'objet eValue.

Code :

EValue <uchar> eValue( 0xF0 );
BOOL bChange0, bChange1;
TCHAR *psztNoYes[]={ _T("Non"), _T("Oui") };

eValue.TraceEx( _T("eValue") );
bChange0 = eValue.MaskSetEx( 0x03, TRUE );
eValue.TraceEx( _T("eValue") );
bChange1 = eValue.MaskSetEx( 0x0C, FALSE );
eValue.TraceEx( _T("eValue") );

ETrace::DoEx( _T("Changement lors du premier appel de la fonction MaskSetEx = %s.\n"), psztNoYes[bChange0] );
ETrace::DoEx( _T("Changement lors du second appel de la fonction MaskSetEx = %s.\n"), psztNoYes[bChange1] );

Sortie :

### Object EValue 'eValue' Trace #
# Object address='0x0012F483', size of='1' byte(s) ('8' bits).
# Value:
# Decimal='-16'(signed) '240'(unsigned), Hexadecimal='0xF0'.
# Binary = 11110000
# Equal. = ========
# Pos maj= 00000000
# Pos min= 76543210
### End #

### Object EValue 'eValue' Trace #
# Object address='0x0012F483', size of='1' byte(s) ('8' bits).
# Value:
# Decimal='-13'(signed) '243'(unsigned), Hexadecimal='0xF3'.
# Binary = 11110011
# Equal. = ========
# Pos maj= 00000000
# Pos min= 76543210
### End #

### Object EValue 'eValue' Trace #
# Object address='0x0012F483', size of='1' byte(s) ('8' bits).
# Value:
# Decimal='-13'(signed) '243'(unsigned), Hexadecimal='0xF3'.
# Binary = 11110011
# Equal. = ========
# Pos maj= 00000000
# Pos min= 76543210
### End #

Changement lors du premier appel de la fonction MaskSetEx = Oui.
Changement lors du second appel de la fonction MaskSetEx = Non.

Vue :

07 06 05 04 03 02 01 00

Champs de bits

1 1 1 1 0 0 0 0 Valeur originale

07 06 05 04 03 02 01 00

Champs de bits

1 1 1 1 0 0 0 0 Valeur originale
0 0 0 0 0 0 1 1 Ajout 03
1 1 1 1 0 0 1 1 Résultat

07 06 05 04 03 02 01 00

Champs de bits

1 1 1 1 0 0 1 1 Valeur originale
0 0 0 0 1 1 0 0 Suppression 0C
1 1 1 1 0 0 1 1 Résultat

 

Voir aussi
void EValue::MaskSet( T tMaskToSet, BOOL bAdd );

 

Minimum
Version 1.0.0