#3 Re: ayuda con especificadores de clases de almacenamiento
auto: Se aplica sólo a variables locales. Indica que la variable es automática, es decir se crea al ejecutarse su instrucción de declaración y se destruye cuando el punto de ejecución sale del bloque que la contiene. Es el especificador por defecto para las variables locales.
static: Se aplica a variables y funciones. Indica que el objeto es estático, es decir sólo es visible en su unidad y, en el caso de variables, existe durante toda la vida del programa. Es el especificador por defecto para las variables globales.
register: Se aplica sólo a variables local. Le indica al compilador que la variable se va a utilizar bastante, y que conviene almacenarla en un registro del CPU. La gran mayoría de los compiladores nuevos simplemente ignora este especificador, ya que las opmitizaciones las hacen automáticamente.
extern: Se aplica a variables y funciones. Indica que el objeto tiene un enlazamiento externo, es decir se puede utilizar desde otras unidades. Es el especificador por defecto para las funciones globales.
Mas información
acá.