Dichiaratori e dichiarazioni di variabiliDeclarators and Variable Declarations

Nel resto di questa sezione viene descritto il formato e il significato delle dichiarazioni dei tipi di variabile contenuti in questo elenco.The rest of this section describes the form and meaning of declarations for variable types summarized in this list. In particolare, nelle sezioni rimanenti viene illustrato come dichiarare i seguenti elementi:In particular, the remaining sections explain how to declare the following:

Il tipo di variabileType of Variable DescrizioneDescription
Variabili sempliciSimple variables Le variabili contenenti un singolo valore con tipo integrale o a virgola mobileSingle-value variables with integral or floating-point type
ArrayArrays Le variabili composte di una raccolta di elementi con lo stesso tipoVariables composed of a collection of elements with the same type
PuntatoriPointers Le variabili che puntano ad altre variabili e che contengono le posizioni delle variabili (sotto forma di indirizzi) invece dei valoriVariables that point to other variables and contain variable locations (in the form of addresses) instead of values
Variabili di enumerazioneEnumeration variables Le variabili semplici con tipo integrale che contengono un valore derivante da un set di costanti Integer denominateSimple variables with integral type that hold one value from a set of named integer constants
StruttureStructures Le variabili composte di una raccolta di valori che può contenere tipi differentiVariables composed of a collection of values that can have different types
UnioniUnions Le variabili composte di diversi valori di tipi differenti che occupano lo stesso spazio di archiviazioneVariables composed of several values of different types that occupy the same storage space

Un dichiaratore è la parte di una dichiarazione che specifica il nome che deve essere introdotto nel programma.A declarator is the part of a declaration that specifies the name that is to be introduced into the program. Può includere modificatori come \* (puntatore-a) e qualsiasi parola chiave della convenzione di chiamata Microsoft.It can include modifiers such as \* (pointer-to) and any of the Microsoft calling-convention keywords.

Sezione specifica MicrosoftMicrosoft Specific

Nel dichiaratoreIn the declarator

__declspec(thread) char *var;  

char è l'identificatore di tipo, __declspec(thread) e * sono i modificatori e var è il nome dell'identificatore.char is the type specifier, __declspec(thread) and * are the modifiers, and var is the identifier's name.

Fine sezione specifica MicrosoftEND Microsoft Specific

È possibile utilizzare i dichiaratori per dichiarare le matrici di valori, i puntatori a valori e le funzioni che restituiscono i valori di un tipo specificato.You use declarators to declare arrays of values, pointers to values, and functions returning values of a specified type. I dichiaratori sono presenti nella matrice e nelle dichiarazioni del puntatore descritte più avanti in questa sezione.Declarators appear in the array and pointer declarations described later in this section.

SintassiSyntax

declarator:declarator:
  pointeropt direct-declarator  pointeropt direct-declarator

direct-declarator:direct-declarator:
  identifier  identifier
  ( declarator )  ( declarator )
  direct-declarator [ constant-expressionopt ]  direct-declarator [ constant-expressionopt ]
  direct-declarator ( parameter-type-list )  direct-declarator ( parameter-type-list )
  direct-declarator ( identifier-listopt )  direct-declarator ( identifier-listopt )

pointer:pointer:
  \* type-qualifier-listopt  \* type-qualifier-listopt
  \* type-qualifier-listopt pointer  \* type-qualifier-listopt pointer

type-qualifier-list:type-qualifier-list:
  type-qualifier  type-qualifier
  type-qualifier-list type-qualifier  type-qualifier-list type-qualifier

Nota

Vedere la sintassi per declaration in Cenni preliminari sulle dichiarazioni o Riepilogo di sintassi del linguaggio C per informazioni sulla sintassi che fa riferimento a declarator.See the syntax for declaration in Overview of Declarations or C Language Syntax Summary for the syntax that references a declarator.

Quando un dichiaratore è costituito da un identificatore non modificato, l'elemento dichiarato è un tipo di base.When a declarator consists of an unmodified identifier, the item being declared has a base type. Se a sinistra di un identificatore è presente un asterisco (\), il tipo viene impostato su un tipo puntatore.If an asterisk (**) appears to the left of an identifier, the type is modified to a pointer type. Se l'identificatore è seguito da parentesi quadre ([ ]), il tipo viene modificato in un tipo di matrice.If the identifier is followed by brackets ([ ]**), the type is modified to an array type. Se l'identificatore è seguito da parentesi tonde, il tipo viene modificato in un tipo di funzione.If the identifier is followed by parentheses, the type is modified to a function type. Per altre informazioni sull'interpretazione della precedenza all'interno delle dichiarazioni, vedere Interpretazione di più dichiaratori complessi.For more information about interpreting precedence within declarations, see Interpreting More Complex Declarators.

Ogni dichiaratore dichiara almeno un identificatore.Each declarator declares at least one identifier. Per essere una dichiarazione completa, il dichiaratore deve includere un identificatore di tipo.A declarator must include a type specifier to be a complete declaration. L'identificatore di tipo fornisce il tipo di elementi di un tipo di matrice, il tipo di oggetto indirizzato da un tipo puntatore o il tipo restituito di una funzione.The type specifier gives the type of the elements of an array type, the type of object addressed by a pointer type, or the return type of a function.

Le dichiarazioni delle matrici e dei puntatori sono descritte in modo più dettagliato più avanti in questa sezione.Array and pointer declarations are discussed in more detail later in this section. Negli esempi seguenti sono illustrati alcuni semplici formati di dichiaratori:The following examples illustrate a few simple forms of declarators:

int list[20]; // Declares an array of 20 int values named list  
char *cp;     // Declares a pointer to a char value  
double func( void ); // Declares a function named func, with no   
                     // arguments, that returns a double value  
int *aptr[10] // Declares an array of 10 pointers  

Sezione specifica MicrosoftMicrosoft Specific

Il compilatore C Microsoft non limita il numero di dichiaratori che possono modificare un'operazione aritmetica, una struttura o un tipo di unione.The Microsoft C compiler does not limit the number of declarators that can modify an arithmetic, structure, or union type. Il loro numero è limitato solo dalla memoria disponibile.The number is limited only by available memory.

Fine sezione specifica MicrosoftEND Microsoft Specific

Vedere ancheSee Also

Dichiarazioni e tipiDeclarations and Types