Maison > Article > développement back-end > Que signifie typedef en langage C
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.] .
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 CCe 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!