¿Palabra clave "registro" en C?

Resuelto Nick Van Brunt asked hace 15 años • 19 respuestas

¿Qué hace la registerpalabra clave en lenguaje C? He leído que se utiliza para optimizar pero no está claramente definido en ningún estándar. ¿Sigue siendo relevante y, de ser así, cuándo lo usaría?

Nick Van Brunt avatar Feb 23 '09 23:02 Nick Van Brunt
Aceptado

Es una pista para el compilador de que la variable se utilizará mucho y que, si es posible, recomienda que se mantenga en un registro del procesador.

La mayoría de los compiladores modernos lo hacen automáticamente y son mejores que nosotros los humanos para seleccionarlos.

Brian Knoblauch avatar Feb 23 '2009 16:02 Brian Knoblauch

Me sorprende que nadie haya mencionado que no se puede tomar una dirección de una variable de registro, incluso si el compilador decide mantener la variable en la memoria en lugar de en el registro.

Por lo tanto, al usarlo registerno se gana nada (de todos modos, el compilador decidirá por sí mismo dónde colocar la variable) y se pierde el &operador, no hay razón para usarlo.

qrdl avatar Feb 23 '2009 18:02 qrdl

Le indica al compilador que intente utilizar un registro de la CPU, en lugar de RAM, para almacenar la variable. Los registros están en la CPU y su acceso es mucho más rápido que la RAM. Pero es sólo una sugerencia para el compilador y es posible que no se cumpla.

Andrew Barnett avatar Feb 23 '2009 16:02 Andrew Barnett