Make your own free website on Tripod.com
Capítulo 9. Ambito de funciones y variables. (3)

Debemos fijarnos que en el ejemplo anterior pi es una variable, la cual no podemos modificar. Por ello pi sólo puede aparecer en un único fuente. Si la definimos en varios, al linkar el programa se nos generará un error por tener una variable duplicada. En el caso en que queramos acceder a ella desde otro fuente, debemos declararla con el modificador extern.

Otro modificador utilizado algunas veces es el register. Este modificador es aplicable únicamente a variables locales e indica al compilador que esta variable debe ser almacenada permanentemente en un registro del procesador del ordenador. Este modificador es herencia de los viejos tiempos, cuando las tecnologías de optimización de código no estaban muy desarrolladas y se debía indicar qué variable era muy utilizada en la función. Hoy en día casi todos los compiladores realizan un estudio de qué variables locales son las más adecuadas para ser almacenadas en registros, y las asignan automáticamente. Con los compiladores modernos se puede dar el caso de que una declaración register inadecuada disminuya la velocidad de ejecución de la función, en lugar de aumentarla. Por ello, hoy en día, la utilización de este modificador está en desuso, hasta el punto de que algunos compiladores lo ignoran. Se debe tener en cuenta que de una variable declarada como register no se puede obtener su dirección, ya que está almacenada en un registro y no en memoria.