switch (Instrucción)
Transfiera el control a otro bloque de instrucciones dentro del cuerpo del conmutador en función del valor de un selector.
[Attribute] switch( Selector ) { case 0 : { StatementBlock; } break; case 1 : { StatementBlock; } break; case n : { StatementBlock; } break; default : { StatementBlock; } break;
Parámetros
-
Atributo
-
Parámetro opcional que controla cómo se compila la instrucción. Cuando no se especifica ningún atributo, el compilador puede usar un conmutador de hardware o emitir una serie de instrucciones if .
Atributo Descripción quitar información de estructura jerárquica Compile la instrucción como una serie de instrucciones if , cada una con el atributo flatten . branch Compile la instrucción como una serie de instrucciones if cada una con el atributo branch . Nota: Cuando se usa el modelo de sombreador 2.x o el modelo de sombreador 3.0, cada vez que se usa la bifurcación dinámica, se consumen recursos. Por lo tanto, si usa la bifurcación dinámica excesivamente al dirigirse a estos perfiles, puede recibir errores de compilación. forcecase Forzar una instrucción switch en el hardware. Nota: Requiere el nivel de característica 10_0 o hardware posterior. llamada Los cuerpos de los casos individuales del conmutador se moverán a subrutinas de hardware y el conmutador será una serie de llamadas subrutinas. Nota: Requiere el nivel de característica 10_0 o hardware posterior. -
Selector
-
Variable. Cada una de las instrucciones case dentro de los corchetes comprobará esta variable para ver si SwitchValue coincide con su CaseValue determinado.
-
StatementBlock
-
Una o varias instrucciones.
Comentarios
[branch] switch(a)
{
case 0:
return 0;
case 1:
return 1;
case 2:
return 3;
default:
return 6;
}
Equivale a:
[branch] if( a == 2 )
return 3;
else if( a == 1 )
return 1;
else if( a == 0 )
return 0;
else
return 6;
Estos son ejemplos de usos de atributos de control de flujo de llamadas y forcecase:
[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;
}
Requisitos
Requisito | Value |
---|---|
Encabezado |
|