Maison  >  Article  >  développement back-end  >  Que signifie typedef en langage C

Que signifie typedef en langage C

hzc
hzcoriginal
2020-07-01 15:32:5722883parcourir

typedef est un mot-clé en langage C. Sa fonction est de définir un nouveau nom pour un type de données. Les types de données incluent ici les types de données internes [int, char, etc.] et les types de données personnalisés [stuct, etc.] .

Que signifie typedef en langage C

Typedef est une syntaxe courante en C/C++ La fonction de typedef peut être résumée en quatre types :

1. tapez Nom

Dans les applications classiques, si vous souhaitez définir deux pointeurs de caractères, écrivez le code suivant : char *a, b

(1) char* a,b;

(2)char c='m';

(3)a=&c;

(4)b=&c;

Le code ci-dessus est faux, seul a est un pointeur de caractère et b est toujours une variable de caractère. La définition de macro via #define n'est toujours pas valide, car la définition de macro ne consiste qu'à remplacer des caractères.

Ce qui suit est réalisable :

(1) typedef char* PCHAR

(2) PCHAR pa, pb

2. transplant

Lors de l'écriture de programmes, si le portage de plate-forme est pris en compte, les différences dans la couche matérielle doivent être extraites du code, comme l'espace occupé par les variables, le mode final, etc.

Considérez une variable à virgule flottante. Sur différentes plates-formes matérielles, l'espace qu'elle occupe peut être différent. Dans ce cas, vous pouvez utiliser typedef pour la définir dans un fichier d'en-tête séparé. Contenu lié au matériel :

(1) typedef float REAL

(2) typedef short int INT16

(3) typedef int INT32

( 4)...

Dans ce cas, si vous envisagez de porter le programme dans le futur, il vous suffit de modifier le fichier d'en-tête.

3. Donnez des alias aux déclarations complexes

Les déclarations complexes sont sous la forme : void (*b[10]) (void (*)());

Signification : Premièrement, *b[10] est un tableau de pointeurs, et les dix éléments qu'il contient sont tous des pointeurs. De quel type de pointeur s'agit-il ? Il s'agit d'un pointeur de fonction avec un type de retour nul et des paramètres formels nuls.

Une déclaration aussi complexe peut être simplifiée avec typedef :

Premièrement : déclarer le pointeur de fonction derrière :

(1) typedef void (pFunParam *)(); >

Déclarez ensuite le tableau de pointeurs précédent :

(1) typedef void (*pFunx)(pFunParam);

La version simplifiée de la déclaration originale :

pFunx b[10];

Au cours du processus de rédaction de ce document, j'ai fait référence à l'utilisation du typedef du blog en ligne

qui mentionnait une déclaration complexe :

(1) doub (*)() (*e)[9];

Cependant, cette déclaration ne passe pas lorsqu'elle est compilée sous gcc. Selon l'intention initiale de l'auteur, il semble qu'elle devrait être déclarée comme ceci :

(1 )double (*(*e)[9])();

e est un pointeur vers un tableau à 9 dimensions Le tableau est un pointeur de fonction Le paramètre formel du. le pointeur de fonction est vide et le type de retour est double.

Dans ce cas, un tel typedef doit être utilisé pour simplifier la déclaration :

typedef (*(*ptr)[9])();

Tutoriel recommandé : "

Tutoriel langage C

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Que signifie \t en langage CArticle suivant:Que signifie \t en langage C