Maison > développement back-end > C++ > Pourquoi ne puis-je pas déclarer un Typedef en C ?

Pourquoi ne puis-je pas déclarer un Typedef en C ?

Mary-Kate Olsen
Libérer: 2024-11-23 20:27:10
original
732 Les gens l'ont consulté

Why Can't I Forward Declare a Typedef in C  ?

Déclaration directe d'un typedef en C

Il peut sembler intuitif qu'une déclaration directe d'un typedef soit possible, comme c'est le cas avec une classe. Cependant, le compilateur ne le permettra pas. Au lieu de cela, il est nécessaire de déclarer le type auquel le typedef fait référence.

Par exemple, disons que nous voulons créer un typedef pour une classe appelée A :

typedef A B; // error: 'A' was not declared in this scope
Copier après la connexion

Pour résoudre ce problème , nous devons d'abord déclarer la classe A :

class A;

typedef A B; // valid
Copier après la connexion

Cela nous permet de référencer le type B plus tard dans notre code, même si la définition complète de A n'est pas encore connu.

Meilleure pratique pour minimiser l'arbre d'inclusion

Comme nous ne pouvons pas transmettre les typedefs, la meilleure pratique pour garder l'arbre d'inclusion petit est d'inclure uniquement les en-têtes qui sont nécessaire à l'unité de compilation actuelle. Ceci peut être réalisé en utilisant des gardes d'inclusion et en gérant soigneusement les dépendances entre les en-têtes.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal