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
- C (lenguaje de programación)
- Variable (informática)