Articulo de referencia

registro (palabra clave)

En el lenguaje de programación C , register es una palabra reservada (o palabra clave), un modificador de tipo, una clase de almacenamiento y una sugerencia del compilador para ...

En el lenguaje de programación C , registeres una palabra reservada (o palabra clave), un modificador de tipo, una clase de almacenamiento y una sugerencia del compilador para almacenar un símbolo en un registro de la CPU.

Información

registeres una palabra clave en C, y anteriormente en C++. La registerpalabra clave fue desprestigiada en C++ , y luego eliminada (pero sigue reservada) en C++17 . Sugiere que el compilador almacene una variable declarada en un registro de la CPU (o alguna otra ubicación más rápida) en lugar de en la memoria de acceso aleatorio . Si es posible, dependiendo del tipo de CPU y la complejidad del código del programa, optimizará el acceso a esa variable y, por lo tanto, mejorará el tiempo de ejecución de un programa. En C (pero no en C++, donde la palabra clave se ignora esencialmente), registerno se puede acceder a la ubicación (dirección) de una variable declarada con, pero sizeofse puede aplicar el operador. [ 1 ] Aparte de esta limitación, registeres esencialmente sin sentido en los compiladores modernos, debido a la optimización que colocará las variables en un registro si es apropiado, independientemente de si se da la sugerencia.

Para la programación de sistemas embebidos, registeraún puede ser significativo; por ejemplo, el compilador Microchip MPLAB XC32 permite al programador especificar un registro particular con la palabra clave; sin embargo, esto se desaconseja en favor de las optimizaciones del compilador. [ 2 ]

entero sin signo volátil especial ;unsigned int example () { registrar unsigned int my_reg asm ( "$4" ) = 32 ; my_reg += special ; return my_reg ; }

Cuando se utiliza, registersuele ser para contadores de bucles o, posiblemente, para otras variables de uso muy frecuente en el código.

Ejemplos

// Almacena la variable entera "i" en la RAM, registro u otra ubicación según lo considere oportuno el compilador int i = 0 ;// sugiere almacenar la variable entera "i" en un registro de la CPU u otro registro de ubicación rápida int i = 0 ;

Véase también

Referencias

  1. "NORMA INTERNACIONAL ISO/IEC 9899:TC2" (PDF) .
  2. "Guía del usuario del compilador MPLAB® XC32 C/C++" (PDF) . pág. 170.