Especificadores de clases de almacenamiento estático

Los especificadores estáticos de clase de almacenamiento, static y extern, se pueden aplicar a objetos y funciones. En la tabla siguiente se muestra dónde se pueden y no se pueden utilizar las palabras clave static y extern.

Uso de static y extern

Construcción

¿Puede usarse

static?

¿Puede usarse

static?

Declaraciones de función dentro de un bloque

No

Argumentos formales a una función

No

No

Objetos en un bloque

Objetos fuera de un bloque

Funciones

Funciones de miembro de clase

No

Datos de miembro de clase

No

Nombres typedef

No

No

Un nombre especificado mediante la palabra clave static tiene vinculación interna, a excepción de los miembros estáticos de una clase que tengan vinculación externa. Es decir, no está visible fuera de la unidad de traducción actual. Un nombre especificado mediante la palabra clave extern tiene vinculación externa a menos que ya se haya definido con vinculación interna. Para obtener más información sobre la visibilidad de nombres, vea Ámbito y Programa y vinculación.

Nota

Las funciones que se declaran como inline y que no son funciones de miembro de clase tiene las mismas características de vinculación que las funciones declaradas como static.

Un nombre de clase cuya declaración aún no haya sido encontrada por el compilador se puede usar en una declaración extern. El nombre introducido con este tipo de declaración no se puede utilizar hasta que se haya encontrado la declaración de clase.

Vea también

Referencia

Especificadores de clase de almacenamiento