Partager via


Spécificateurs C

les spécificateurs de type dans les déclarations définissent le type d'une variable ou d'une déclaration de fonction.

Syntaxe

  • spécificateur de type:
    void

    char

    short

    int

    long

    float

    double

    signé

    non signé

    struct-ou-union-spécificateur

    enum-spécificateur

    typedef-nom

signed char, entier signé, int court signé, les types d' int long signé , ainsi que leurs équivalents d' unsigned et enum, sont appelés types intégraux «  ».float, double, et des spécificateurs de type d' long double portent le nom de types « flottante » ou « virgule flottante ».Vous pouvez utiliser tout spécificateur d'intégraux type à virgule flottante ou dans une variable ou une déclaration de fonction.Si un spécificateur de type n'est pas fourni dans une déclaration, elle est prise pour être int.

Les mots clés facultatifs signé et unsigned peuvent précéder ou suivre les types intégraux de l'ordinateur, à moins qu' enum, et peuvent également seul être utilisés comme des spécificateurs de type ; ils sont inclus en tant que entier signé et unsigned int, respectivement.Si utilisé seul, le mot clé int est signé.Si utilisé seul, les mots clés long et short sont inclus en tant que long int et short int.

Les types énumération sont considérés comme des types de base.Les spécificateurs de type pour les types énumération sont traités dans déclarations d'énumération.

le mot clé void a trois utilisations : pour spécifier un type de retour de la fonction, spécifier une liste de types d'une fonction qui ne prend pas d'arguments, et spécifier un pointeur vers un type non spécifié.Vous pouvez utiliser le type d' void pour déclarer des fonctions qui ne retournent aucune valeur ou pour déclarer un pointeur vers un type non spécifié.Consultez l' arguments pour plus d'informations sur void lorsqu'elles seul apparaissent dans les parenthèses après le nom de la fonction.

Spécifique à Microsoft

La vérification de type est maintenant ANSI-conforme, ce qui signifie que ce type short et type int sont les types séparés.Par exemple, il s'agit d'une redéfinition dans le compilateur C de Microsoft qui a été reçue par les versions antérieures du compilateur.

int   myfunc();
short myfunc();

Cet exemple suivant génère également un avertissement concernant d'indirection à différents types :

int *pi;
short *ps;

ps = pi;  /* Now generates warning */

Le compilateur C Microsoft génère également des avertissements pour les différences dans le signe.Par exemple :

signed int *pi;
unsigned int *pu

pi = pu;  /* Now generates warning */

Les expressions d' void de type sont évaluées pour les effets secondaires.Vous ne pouvez pas utiliser la valeur (inexistante) d'une expression dont le type void d'une manière, vous ne pouvez pas non convertir une expression d' void (par conversion implicite ou explicite) à tout type à l'exception de void.Si vous utilisez une expression de tout autre type dans un contexte lorsqu'une expression d' void est requise, sa valeur est ignoré.

Pour être conforme à la spécification ANSI, void ** ne peut pas être utilisé comme int **.Uniquement void* peut être utilisé en tant que pointeur vers un type non spécifié.

détail de FIN Microsoft

Vous pouvez créer des spécificateurs supplémentaires de type avec les déclarations d' typedef , comme décrit dans déclarations de typedef.Consultez stockage des types de base pour plus d'informations sur la taille de chaque type.

Voir aussi

Concepts

Déclarations et types