Compartilhar via


Especificadores de tipo c

Especificadores de tipo em declarações definem o tipo de uma declaração de função ou variável.

Sintaxe

  • especificador de tipo:
    Void

    char

    short

    int

    long

    float

    double

    assinado

    não assinado

    especificador de struct ou união

    especificador de enum

    nome de TypeDef

O assinado char, assinado int, assinado short int, e assinado long int tipos, juntos com seus unsigned contrapartes e enum, são chamados de tipos "integral".O float, double, e long double especificadores de tipo são chamados de tipos "flutuantes" ou "ponto flutuante".Você pode usar qualquer especificador de tipo integral ou de ponto flutuante em uma declaração de função ou variável.Se um especificador de tipo não é fornecido em uma declaração, ela é considerada como int.

As palavras-chave opcional assinado e unsigned pode preceder ou seguir qualquer um dos tipos integrais, exceto enume também pode ser usado isoladamente como especificadores de tipo, caso em que eles são compreendidos como assinado int e unsigned int, respectivamente.Quando usada sozinha, a palavra-chave int será considerado assinado.Quando usada sozinha, as palavras-chave longo e curto são compreendidos como long int e short int.

Tipos de enumeração são considerados tipos básicos.Especificadores de tipo para tipos de enumeração são discutidos em Declarações de enumeração.

A palavra-chave void tem três usos: para especificar uma função retornar um tipo, para especificar uma lista de tipo de argumento para uma função que não aceita argumentos e para especificar um ponteiro para um tipo não especificado.Você pode usar o void tipo de funções que não retornam nenhum valor de declarar ou declarar um ponteiro para um tipo não especificado.Consulte argumentos para obter informações sobre void quando aparecer sozinha dentro dos parênteses após o nome de uma função.

Específicos do Microsoft

Agora é compatível com ANSI, que significa que esse tipo de verificação de tipo curto e o tipo de int são tipos distintos.Por exemplo, isso é uma redefinição no compilador c da Microsoft que foi aceita por versões anteriores do compilador.

int   myfunc();
short myfunc();

Neste próximo exemplo também gera um aviso sobre indireção para tipos diferentes:

int *pi;
short *ps;

ps = pi;  /* Now generates warning */

O compilador Microsoft C também gera avisos diferenças no início de sessão.Por exemplo:

signed int *pi;
unsigned int *pu

pi = pu;  /* Now generates warning */

Tipo de void as expressões são avaliadas com efeitos colaterais.Você não pode usar o valor (inexistente) de uma expressão que tem um tipo void em qualquer forma, nem pode converter um void a expressão (por conversão implícita ou explícita) a qualquer tipo exceto void.Se você usar uma expressão de qualquer outro tipo em um contexto onde uma void expressão é necessária, seu valor será descartado.

De acordo com a especificação ANSI, void ** não pode ser usado como int **.Somente void * pode ser usado como um ponteiro para um tipo não especificado.

Específicos do Microsoft final

Você pode criar especificadores de tipo adicionais com typedef declarações, conforme descrito em Typedef declarações.Consulte Armazenamento de tipos básicos para obter informações sobre o tamanho de cada tipo.

Consulte também

Conceitos

Declarações e tipos