Instruction switch

Transférer le contrôle à un autre bloc d’instructions dans le corps du commutateur en fonction de la valeur d’un sélecteur.

[Attribut ] commutateur ( Sélecteur ) {case 0 : { StatementBlock;} saut cas 1 : { StatementBlock;} saut cas n : { StatementBlock;} saut valeur par défaut : { StatementBlock;} saut

Paramètres

Attribut

Paramètre facultatif qui contrôle la façon dont l’instruction est compilée. Quand aucun attribut n’est spécifié, le compilateur peut utiliser un commutateur matériel ou émettre une série d’instructions If .

Attribut Description
aplatir Compilez l’instruction comme une série d’instructions If , chacune avec l’attribut Flatten .
branche Compilez l’instruction comme une série d’instructions If chacune avec l’attribut Branch .
[!Note]
Lorsque vous utilisez le modèle de nuanceur 2. x ou le modèle de nuanceur 3,0, chaque fois que vous utilisez la création de branche dynamique, vous consommez des ressources. Ainsi, si vous utilisez la création de branche dynamique de façon excessive lorsque vous ciblez ces profils, vous pouvez recevoir des erreurs de compilation.

forcecase Forcez une instruction switch dans le matériel.
[!Note]
Requiert un matériel 10_0 ou ultérieur de niveau de fonctionnalité .

appel Les corps des cas individuels dans le commutateur seront déplacés dans les sous-routines matérielles et le commutateur sera une série d’appels de sous-routine.
[!Note]
Requiert un matériel 10_0 ou ultérieur de niveau de fonctionnalité .

Sélection

Variable. Les instructions case situées à l’intérieur des accolades vérifient chacune cette variable pour voir si le SwitchValue correspond à leur CaseValue particulier.

StatementBlock

Une ou plusieurs instructions.

Remarques

[branch] switch(a)
{
    case 0:
        return 0; 
    case 1:
        return 1; 
    case 2:
        return 3; 
    default:
        return 6; 
}

Équivaut à :

[branch] if( a == 2 )
    return 3;
else if( a == 1 )
    return 1;
else if( a == 0 )
    return 0;
else
    return 6;

Voici des exemples d’utilisation de forcecase et des attributs de contrôle de workflow d’appel :

[forcecase] switch(a)
{
    case 0:
        return 0; 
    case 1:
        return 1; 
    case 2:
        return 3; 
    default:
        return 6; 
}

[call] switch(a)
{
    case 0:
        return 0; 
    case 1:
        return 1; 
    case 2:
        return 3; 
    default:
        return 6; 
}

Configuration requise

Condition requise Valeur
En-tête
Urlmon. h

Voir aussi

Flow Régulation