Compartir a través de


Información general de declaraciones

una “declaración” especifica la interpretación y los atributos de un conjunto de identificadores.Una declaración que también hace que el almacenamiento que se reservará para el objeto o la función llamada por el identificador se denomina “definición”. Las declaraciones de C para variables, funciones, y los tipos tienen esta sintaxis:

Sintaxis

  • declaration:
    init-declarante-lista**;**optde los declaración-especificadores

  • declaración-especificadores:
    almacenamiento-clase-especificador atributo-seq opt

    declaración-especificadores opt

                                  /* atributo- seqoptes específico de Microsoft *

    declaración-especificadores de especificador de tipo opt

    declaración-especificadores calificador de tipo opt

  • init-declarante-lista:
    init-declarante

    init-declarante-lista , init- declarante

  • init-declarante:
    enumeration

    inicializadorde**=** de declaradores

[!NOTA]

esta sintaxis para declaration no se repite en las secciones siguientes.La sintaxis en las secciones siguientes se inicia con declarator no terminal.

Las declaraciones de la init-declarante-lista contienen identificadores que se llaman; el init es una abreviatura del inicializador.La init-declarante-lista es secuencia separada por comas de declarantes, que pueden tener información de tipos adicional, o un inicializador, o ambas.declarator contiene identificadores, si existe, siendo declarado.Los declaración-especificadores no terminales constan de una secuencia de especificadores de tipos y de clase de almacenamiento que indican el acoplamiento, la duración del almacenamiento y, por lo menos a la parte del tipo de entidades que los declarantes representan.Por consiguiente, las declaraciones se componen de una combinación de especificadores de clase de almacenamiento, de especificadores de tipo, de calificadores de tipo, de declarantes, y de inicializadores.

Las declaraciones pueden contener uno o varios de los atributos opcionales enumerados en atributo-seq; seq es una abreviatura de la secuencia.Estos atributos específicos realizan varias funciones, que se describen en detalle en este libro.Para obtener una lista de estos atributos, vea Resumen de la sintaxis de lenguaje-c.

En la forma general de una declaración de variable, el especificador de tipo proporciona el tipo de datos de la variable.El especificador de tipo puede ser un compuesto, como cuando volatilemodifica el tipo const o.declarator proporciona el nombre de la variable, modificado posiblemente para declarar un tipo de matriz o de puntero.Por ejemplo,

int const *fp;

declara una variable denominada fp como puntero (const) en un valor no modificable de int .Puede definir más de una variable en una declaración utilizando los declarantes múltiples, separados por comas.

Una declaración debe tener al menos un declarador, o el especificador de tipo debe declarar una etiqueta de estructura, la etiqueta de unión, o los miembros de una enumeración.Los declarantes proporcionan la información restante sobre un identificador.Un declarador es un identificador que se puede modificar con corchetes ([]), asteriscos (*), o paréntesis (()) para declarar una matriz, un puntero, o un tipo de función, respectivamente.Al declarar variables simples (como carácter, entero, y los elementos flotantes), o estructuras y uniones de variables simples, declarator es simplemente un identificador.Para obtener más información sobre declarantes, vea declarantes y declaraciones de variable.

Todas las definiciones son implícitamente declaraciones, pero no todas las declaraciones son definiciones.Por ejemplo, las declaraciones de variable que comienzan con el especificador de clase de almacenamiento de extern “hacen referencia,” en lugar de “definiendo” declaraciones.Si se pasa una variable externa a ser hace referencia antes de que está definido, o si está definido en otro archivo de código fuente de donde se utiliza, una declaración de extern es necesaria.El almacenamiento no es asignado “hacer referencia” declaraciones, o se pueden variables inicializar en declaraciones.

Requieren una clase de almacenamiento o un tipo (o ambos) en declaraciones de variable.A excepción de __declspec, se permite un especificador de clase de almacenamiento en una declaración y permiten a no todos los especificadores de clase de almacenamiento en cada contexto.La clase de almacenamiento de __declspec se permite con otros especificadores de clase de almacenamiento, y se permite más de una vez.El especificador de clase de almacenamiento de una declaración afecta a cómo se almacenan y se inicializa el elemento declarado, y que pueden hacer referencia a las partes de un programa el elemento.

Los elementos de almacenamiento-clase-especificador definido en inclusión Auto, extern, Registrarse, Estática, y typedefde C.Además, Microsoft c incluye el terminal __declspecde almacenamiento-clase-especificador .Todos los elementos de almacenamiento-clase-especificador a menos que typedef y __declspec se describen en clases de almacenamiento.Vea declaraciones de Typedef para obtener información sobre typedef.Vea Atributos extendidos de clase de almacenamiento para obtener información sobre __declspec.

La ubicación de la declaración dentro del origen y la presencia o ausencia de otras declaraciones de variables es factores importantes en determinar la duración de variables.Puede haber redeclarations varias pero solo una definición.sin embargo, una definición puede aparecer en más de una unidad de traducción.Para los objetos con vinculación interna, esta regla se aplica por separado a cada unidad de traducción, porque internamente los objetos vinculados son únicos en una unidad de traducción.Para los objetos con vinculación externa, esta regla se aplica al programa completo.Vea duración, ámbito, Visibility, y Linkage para obtener más información sobre la visibilidad.

Los especificadores de tipo proporcionan cierta información sobre los tipos de datos de identificadores.El especificador de tipo predeterminado es int.Para obtener más información, vea Especificadores de tipo.Los especificadores de tipo también pueden definir las etiquetas del tipo, nombres componentes de estructura y unión, y constantes de enumeración.Para obtener más información vea Declaraciones de enumeración, Declaraciones de estructura, y Declaraciones de unión.

Hay dos terminales calificador de tipo : const y volatile.Estos calificadores especifican propiedades adicionales de los tipos que son pertinentes al tener acceso a los objetos de ese tipo con l.Para obtener más información sobre const y volatile, vea calificadores de tipo.Para una definición de l, vea Las expresiones de valor l y r-value.

Vea también

Conceptos

Declaraciones y tipos