typedef struct clarté
Je suis de se confondre avec typedef quelqu'un peut transcrire ce normal de composition? des structures? Je ne veux vraiment pas à gérer typedef car il me met à confondre
struct stackNode
{
int data;
struct stackNode *nxtptr;
};
typedef struct stackNode StackNode;
typedef StackNode *StackNodePtr;
est
typedef struct stackNode StackNode;
est le même que struct stackNode StackNode
et typedef StackNode *StackNodePtr;
est le même que struck stackNode *StackNodePtr
??
OriginalL'auteur Kyel John M David Philippines | 2011-04-05
Vous devez vous connecter pour publier un commentaire.
Si vous ne souhaitez pas utiliser
typedef
vous pouvez toujours utiliser le nom complet du type:Au lieu de:
Vous utilisez:
Au lieu de:
Vous utilisez:
Les déclarations sont exactement les mêmes.
Souvenez-vous: Avec
typedef
vous êtes seulement à la création d'/définition/renommer nouveau types, pas de nouvelles variables.soo ils sont de droite?? Je suis un peu confus XD désolé xD
nouveau type noms, plutôt.
OriginalL'auteur Pablo Santa Cruz
Plus commune façon d'écrire la même serait:
où
stackNode
est ce qu'on appelle "struct tag" etStackNode_t
est le nom du type. Si vous déclarez des structures de ce genre, le reste du programme n'a pas besoin de se préoccuper de la structure de la balise, et vous pouvez les utiliser nxtptr comme si c'était de StackNode_t.OriginalL'auteur Lundin
Si vous souhaitez ne pas avoir de "struct stackNode" à l'intérieur de la structure, j'ai constaté que je suis capable de faire cela:
Que vous pouvez coder une telle chose, ET il compile très bien, ET il fonctionne très bien peut sembler contre-intuitif. Il peut être contre-intuitif, car je suis en utilisant le même nom pour struct STACKNODE et de la définition de type STACKNODE. Et de plus, je suis typedef-ing la structure avant il existe aussi une définition. Néanmoins, j'ai trouvé que je peux le faire avec Microsoft C par le biais de nombreuses versions d'aujourd'hui et Borland C (à l'époque).
Je l'aime, parce que si je suis déjà aller à l'typedef struct, je n'aime pas recourir à la "struct STACKNODE *nxtptr" (c'est à dire en utilisant le mot "struct") à l'intérieur de la structure de la définition.
Vous devriez pas vraiment utiliser un
typedef
sans nom, de sorte que la deuxième déclaration doit être justestruct STACKNODE { … };
(en omettant letypedef
). Comme il est, vous avez un videtypedef
et certains compilateurs avertir à ce sujet. Personnellement, je ne voudrais pas utiliser les majuscules pour le nom; je me réserve tous les bouchons pour les macros et de dénombrement des constantes.OriginalL'auteur Indinfer
Avec typedef, vous définissez StackNode être struct stackNode, et le Pointeur StackNodePtr être StackNode.
Donc ce n'est pas clair?
OriginalL'auteur tamasgal
Bien, pour l'expliquer facilement: Typedef n'est fondamentalement rien d'autre alors pour indiquer au compilateur que vous créez un nouveau type de variables (tels que int, char, etc..)
Les principales raisons d'utiliser typedef sont
OriginalL'auteur Chris
voir si
typedef
aide. Plus comme un 101. La section intitulée "Utilisation des préoccupations" peut donner un aperçu de votre, euh, des préoccupations.OriginalL'auteur dubnde