Categorías
C/C++

Instrucción Switch y If en C / C ++

Considere este ejemplo:

void send(int *to, int *from, int count)
{
  int n = (count+7)/8;
  switch(count%8) {
case 0: do{*to++ = *from++;
case 7:    *to++ = *from++;
case 6:    *to++ = *from++;
case 5:    *to++ = *from++;
case 4:    *to++ = *from++;
case 3:    *to++ = *from++;
case 2:    *to++ = *from++;
case 1:    *to++ = *from++;
    } while(--n > 0);
  }
}

¿Qué hace?

Básicamente, todos los ‘casos’ son como la etiqueta en la declaración goto. Aunque la instrucción switch es el alcance adjunto en el sentido léxico, la instrucción do while es el alcance adjunto real de la mayor parte del código. Switch es simplemente un enrutador para proporcionar varias entradas a la declaración do while. La próxima vez, cuando tenga que decidir entre usar switch o if, tenga en cuenta este ejemplo.

Referencia:
1. Dispositivo de Duff

  Estrella doble después del tipo y antes de la variable

Por Programación.Click

Más de 20 años programando en diferentes lenguajes de programación. Apasionado del code clean y el terminar lo que se empieza. ¿Programamos de verdad?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *