En el lenguaje de programación C , register
es una palabra reservada (o palabra clave), modificador de tipo, clase de almacenamiento y sugerencia. La register
palabra clave quedó obsoleta en C ++ , hasta que se volvió reservada y no se usó en C ++ 17 . Se sugiere que el compilador de tienda de una variable declarada en una CPU de registro (o alguna otra ubicación más rápido) en lugar de en la memoria RAM . 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 C ++donde la palabra clave se ignora esencialmente) register
no se puede acceder a la ubicación de una variable declarada con , pero sizeof
se puede aplicar el operador. [1] Aparte de esta limitación, register
esencialmente no tiene 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 pista. Para la programación de sistemas embebidos register
aú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 a favor de las optimizaciones del compilador. [2] Cuando se usa, register
es típicamente para contadores de bucle , o posiblemente para otras variables usadas con mucha frecuencia en el código.
Ejemplos de
/ * almacena la variable entera "i" en la RAM, registro u otra ubicación que el compilador considere conveniente * / int i ; / * sugiere almacenar la variable entera "i" en un registro de la CPU u otra ubicación rápida * / register int i ;
Ver también
Referencias
- ^ "ESTÁNDAR INTERNACIONAL ISO / IEC 9899: TC2" (PDF) .
- ^ "Guía del usuario del compilador MPLAB® XC32 C / C ++" (PDF) . pag. 170.