tipo régimen qué presentan por objetivo inversiones internacionales definicion declaración declaraciones declaracion correccion concepto codigos cambio cambiario c switch-statement break

régimen - objetivo de la declaracion de cambio



interrupción independiente dentro de una declaración de cambio (2)

Esa afirmación, junto con cualquier otra declaración que no esté en una cláusula de case en la instrucción switch , es un código inalcanzable, también conocido como código muerto. Eso significa que no se ejecutarán de todos modos. No se recomienda usarlos.

Me encontré con este código, que funciona como se esperaba:

switch (ev->deviceType) { break; case DEVICE_TS1E0: //some code break; case DEVICE_TS1E3: //some code break; default: //some logging break; }

Ahora, hay un break; solitario break; al inicio del cambio, que parece no tener ningún efecto.

¿Hay alguna circunstancia donde ese break; tendría un efecto?


TL; DR Esa declaración de break es ineficaz y un código muerto. El control nunca llegará allí.

C11 estándar C11 tiene un buen ejemplo de un caso similar, permítanme citarlo así de simple.

Del Capítulo §6.8.4.2 / 7, ( énfasis mío )

EJEMPLO en el fragmento de programa artificial

switch (expr) { int i = 4; f(i); case 0: i = 17; /* falls through into default code */ default: printf("%d/n", i); }

el objeto cuyo identificador es i existe con la duración de almacenamiento automático (dentro del bloque) pero nunca se inicializa, y por lo tanto, si la expresión de control tiene un valor distinto de cero, la llamada a la función printf tendrá acceso a un valor indeterminado. Del mismo modo, la llamada a la función f no puede ser alcanzada.