Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El especificador de clase de almacenamiento en una definición de función proporciona la función extern o clase de almacenamiento de Estática .
Sintaxis
definición de función:
instrucciónoptcompuesta atributo-seqoptde la declaración-lista de declaradoresoptde los declaración-especificadores/* atributo-seq es Microsoft Específico *
declaración-especificadores:
declaración-especificadores de almacenamiento-clase-especificador optdeclaración-especificadores de especificador de tipo opt
declaración-especificadores calificador de tipo opt
almacenamiento-clase-especificador: /* Para las definiciones de función *
externstatic
Si una definición de función no incluye un almacenamiento-clase-especificador, los valores predeterminados de la clase de almacenamiento a extern.Puede declarar explícitamente una función como extern, pero no se requiere.
Si la declaración de una función contiene *el almacenamiento-clase-especificador *extern, el identificador tiene el mismo enlace que cualquier declaración visible del identificador con ámbito del archivo.Si no hay declaración visible con ámbito del archivo, el identificador tiene una vinculación externa.Si un identificador tiene ámbito de archivo y ningún almacenamiento-clase-especificador, el identificador tiene una vinculación externa.Vinculación externa significa que cada instancia del identificador del mismo objeto o función.Vea duración, ámbito, Visibility, y Linkage para obtener más información sobre el ámbito de vinculación y archivo.
las declaraciones de función de Bloque-ámbito con un especificador de clase de almacenamiento distinta de extern generan errores.
Una función con la clase de almacenamiento de Estática sólo es visible en el archivo de código fuente en el cual se define.Todos los demás funciona, si se les proporciona la clase de almacenamiento de extern explícita o implícitamente, está visible en todos los archivos de código fuente del programa.Si se desea que la clase de almacenamiento de Estática , debe declararse de la primera aparición de una declaración (si existe) de la función y, en la definición de la función.
Específicos de Microsoft
Con las extensiones de Microsoft habilitadas, una función declarada originalmente sin una clase de almacenamiento (o con la clase de almacenamiento de extern ) tiene la clase de almacenamiento de Estática si la definición de función está en el mismo archivo de código fuente y si la definición especifica explícitamente la clase de almacenamiento de Estática .
Al compilar con la opción del compilador /Ze, las funciones declaradas dentro de un bloque mediante la palabra clave de extern tienen visibilidad global.Esto no es true al compilar con /Za.Esta característica no debe ser de confianza sobre si la portabilidad de código fuente es una consideración.
Específico de Microsoft de FINAL