Compartilhar via


Qualificadores de tipo

Qualificadores de tipo dar uma das duas propriedades para um identificador.O const o qualificador de tipo declara um objeto a ser nonmodifiable.O volatile o qualificador de tipo declara um item cujo valor pode ser alterado legitimamente por algo além do controle do programa em que ele aparece, como, por exemplo, um thread em execução simultaneamente.

Os dois digite qualificadores, const e volatile, pode aparecer apenas uma vez em uma declaração.Qualificadores de tipo podem aparecer com qualquer especificador de tipo; No entanto, não pode aparecer após a primeira vírgula em uma declaração de item vários.Por exemplo, as seguintes declarações são legais:

typedef volatile int VI;
const int ci;

Essas declarações não são legais:

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

Qualificadores de tipo são relevantes apenas ao acessar identificadores como valores l em expressões.Consulte L-Value e expressões de R-Value para obter informações sobre expressões e valores de l.

Sintaxe

  • qualificador de tipo:
    constvolatile

A seguir é legal const e volatile declarações:

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 a especificação de um tipo matriz inclui qualificadores de tipo, o elemento é qualificado, não é do tipo de matriz.Se a especificação do tipo função inclui os qualificadores, o comportamento é indefinido.Nem volatile nem const afeta o intervalo de valores ou propriedades de aritméticas do objeto.

Esta lista descreve como usar o const e volatile.

  • O const palavra-chave pode ser usada para modificar qualquer tipo fundamental ou agregado ou um ponteiro para um objeto de qualquer tipo, ou um typedef.Se um item for declarado com apenas o const o qualificador de tipo, seu tipo é considerado como const int.A const variável podem ser inicializado ou podem ser colocado em uma região de leitura e de armazenamento.O const palavra-chave é útil para declarar os ponteiros para const uma vez que isso requer que a função não para alterar o ponteiro de alguma forma.

  • O compilador pressupõe que, em qualquer ponto no programa, um volatile variável pode ser acessado por um processo desconhecido que usa ou modifica seu valor.Portanto, independentemente das otimizações especificadas no comando de linha, o código para cada atribuição de ou referência de um volatile variável deverá ser gerado, mesmo que ele parece não ter nenhum efeito.

    Se volatile é usada sozinha, int será adotada.O volatile especificador de tipo pode ser usado para fornecer acesso confiável aos locais de memória especial.Use volatile com objetos de dados que podem ser acessados ou alterados por manipuladores de sinal, por programas em execução simultânea ou por um hardware especial, como mapeamento de memória e/S registradores de controle.Você pode declarar uma variável como volatile para a sua vida útil, ou você pode converter uma única referência para ser volatile.

  • Um item pode ser que ambos const e volatile, caso em que o item não pode ser modificado legitimamente por seu próprio programa, mas poderia ser modificado por algum processo assíncrono.

Consulte também

Conceitos

Declarações e tipos