Instruction switch
Transférez le contrôle vers un autre bloc d’instructions dans le corps du commutateur en fonction de la valeur d’un sélecteur.
[Attribute] switch( Selector ) { case 0 : { StatementBlock; } break; case 1 : { StatementBlock; } break; case n : { StatementBlock; } break; default : { StatementBlock; } break; break; } break;
Paramètres
-
Attribut
-
Paramètre facultatif qui contrôle la façon dont l’instruction est compilée. Lorsqu’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 sous la forme d’une série d’instructions if , chacune avec l’attribut aplatissement . branche Compilez l’instruction sous la forme d’une série d’instructions if chacune avec l’attribut de branche . 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 branchement dynamique, vous consommez des ressources. Par conséquent, si vous utilisez la branche dynamique de manière excessive lorsque vous ciblez ces profils, vous pouvez recevoir des erreurs de compilation. cas de force Forcez une instruction switch dans le matériel. Note: Nécessite un matériel de niveau de fonctionnalité 10_0 ou version ultérieure. appel Les corps des cas individuels dans le commutateur seront déplacés dans des sous-routines matérielles et le commutateur sera une série d’appels de sous-routine. Note: Nécessite un matériel de niveau de fonctionnalité 10_0 ou version ultérieure. -
Sélecteur
-
Variable. Les instructions case à l’intérieur des crochets courbés case activée cette variable pour voir si switchValue correspond à leur CaseValue spécifique.
-
StatementBlock
-
Une ou plusieurs instructions.
Notes
[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 des attributs de contrôle de flux d’appels et de cas de force :
[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 |
|