Condividi tramite


Qualificatori del tipo

I qualificatori del tipo forniscono una delle due proprietà di un identificatore.const il qualificatore di tipo dichiara un oggetto per essere non modificabile.volatile il qualificatore di tipo dichiara un elemento il cui valore può essere modificato legittimamente da un elemento sotto il controllo del programma in cui è visualizzata, ad esempio un thread contemporaneamente in esecuzione.

I due qualificatori del tipo, const e volatile, può apparire solo una volta in una dichiarazione.I qualificatori del tipo possono trovarsi con qualsiasi identificatore del tipo; tuttavia, non possono apparire dopo il primo virgola in una dichiarazione multipla dell'elemento.Ad esempio, le dichiarazioni seguenti sono valide:

typedef volatile int VI;
const int ci;

queste dichiarazioni non sono valide:

typedef int *i, volatile *vi;
float f, const cf;   

I qualificatori del tipo sono rilevanti solo durante l'accesso agli identificatori come valori l-value solo nelle espressioni.vedere Espressioni di r-value e l-value per informazioni sui valori l-value solo ed espressioni.

Sintassi

  • tipo-qualificatore:
    constvolatile

Di seguito sono validi const e volatile dichiarazioni:

int const *p_ci;       /* Pointer to constant int */
int const (*p_ci);     /* Pointer to constant int */
int *const cp_i;       /* Constant pointer to int */
int (*const cp_i);     /* Constant pointer to int */
int volatile vint;     /* Volatile integer        */

Se la specifica di un tipo di matrice include i qualificatori del tipo, l'elemento viene qualificato, non il tipo di matrice.Se la specifica del tipo di funzione include i qualificatori, il comportamento sarà indefinito.Nessuno volatile né const influisce sull'intervallo dei valori delle proprietà o dell'aritmetica dell'oggetto.

Questo elenco viene descritto come utilizzare const e volatile.

  • const la parola chiave può essere utilizzata per modificare qualsiasi tipo sottostante o di aggregazione, o un puntatore a un oggetto di qualsiasi tipo, o di un oggetto typedef.Se un elemento è dichiarato solo con const digitare il qualificatore, il tipo viene utilizzato per essere const int.In const la variabile è possibile inizializzare o può essere inserita in un'area di sola lettura di archiviazione.const la parola chiave è utile per i puntatori a const poiché questo richiede la funzione di non modificare il puntatore in alcun modo.

  • Il compilatore presuppone che, in un punto qualsiasi del programma, a volatile la variabile è accessibile da un processo sconosciuto che utilizza o modificare il valore.Di conseguenza, indipendentemente dalle ottimizzazioni specificate nella riga di comando, nel codice per ogni assegnazione o riferimento di un oggetto volatile la variabile deve essere generata anche se non produce alcun effetto.

    se volatile viene utilizzato da solo, int si presume.volatile l'identificatore del tipo può essere utilizzato per fornire l'accesso completo alle posizioni di memoria speciali.utilizzo volatile utilizzo di oggetti dati che è possibile accedere o modificati dai gestori del segnale, contemporaneamente eseguendo i programmi, o dall'hardware speciale come controllo registra mappati alla memoria di I/O.È possibile dichiarare una variabile come volatile per la sua durata, oppure è possibile eseguire il cast di un solo riferimento per essere volatile.

  • Un elemento può essere entrambe const e volatilein questo caso, l'elemento non può essere modificato legittimamente dal proprio programma, ma può essere modificato da un processo asincrono.

Vedere anche

Concetti

Dichiarazioni e tipi