Especificadores de clase de almacenamiento con declaraciones de función
Puede utilizar el especificador de clase de almacenamiento static
o extern
en declaraciones de función. Las funciones siempre tienen duraciones globales.
Específicos de Microsoft
Las declaraciones de función en el nivel interno tienen el mismo significado que las declaraciones de función en el nivel externo. Esto significa que una función estará visible desde su punto de declaración en el resto de la unidad de traducción aunque se declare en ámbito local.
FIN de Específicos de Microsoft
Las reglas de visibilidad para funciones difieren ligeramente de las reglas para variables, del modo siguiente:
Una función declarada como
static
solo es visible en el archivo de código fuente en el que está definida. Las funciones del mismo archivo de código fuente pueden llamar a la funciónstatic
, pero las funciones de otros archivos de código fuente no pueden acceder directamente por el nombre. Puede declarar otra funciónstatic
con el mismo nombre en un archivo de código fuente diferente sin conflicto.Las funciones declaradas como
extern
están visibles en todos los archivos de código fuente del programa (a menos que vuelva a declarar la función en cuestión posteriormente comostatic
). Cualquier función puede llamar a una funciónextern
.Las declaraciones de función que omiten el especificador de clase de almacenamiento son
extern
de forma predeterminada.
Específicos de Microsoft
Microsoft permite la redefinición de un identificador extern
como static
.
FIN de Específicos de Microsoft