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 |
|