Propósito de este estilo de codificación

2

Encontré este código para un microcontrolador LPCxxxx, en la rutina de reinicio.

do {
    const uint32_t topOfStack = (uint32_t) &_vStackTop;
    __set_PSP(topOfStack);
    __set_MSP(topOfStack);
} while(0);

Me preguntaba por qué esto está dentro de un bucle do-while (que se ejecuta solo una vez) en lugar de escribir esas instrucciones de forma directa (me refiero a fuera del bucle)

    
pregunta legen

1 respuesta

2

En este caso particular, no cubierto en las respuestas de Stackoverflow , le da la oportunidad de declarar una variable local que es compartido entre las tres declaraciones y no se utiliza en ninguna otra parte.

Este tipo de optimización explícita de almacenamiento puede ser importante en microcontroladores pequeños.

    
respondido por el Dave Tweed

Lea otras preguntas en las etiquetas