76 votes

Mais que signifie cette assertion ?

Dans une page de référence de C++, ils donnent quelques exemples de typedef et j’essaie de comprendre ce qu’ils signifient.

Si je comprends bien le typedef simple (la première déclaration).

Mais ce qu’ils déclarent avec l’autre (repris ci-dessous) ?

En particulier, ce que fait `` veux dire ?

96voto

Mike Seymour Points 130519

Qu’il déclare typedefs plusieurs à la fois, il suffit que vous pouvez déclarer plusieurs variables à la fois. Ils sont tous les types basés sur `` , mais quelques uns sont modifiés en types composés.

Nous allons diviser en déclarations distinctes :

41voto

Yu Hao Points 40603
typedef int int_t, *intp_t, (&fp)(int, mylong), arr_t[10];

est équivalent à:

typedef int int_t;
typedef int *intp_t;
typedef int (&fp)(int, mylong);
typedef int arr_t[10];

Il est en fait un exemple similaire dans le C++11 standard:

C++11 7.1.3 L' typedef spécificateur

Un typedef-nom n'a pas d'introduire un nouveau type de la façon dont un class déclaration (9.1) ou enum déclaration.Exemple: après

typedef int MILES , * KLICKSP ;

les constructions

MILES distance ;
extern KLICKSP metricp ;

sont tous corrects déclarations; le type de distance est de type int que d' metricp est "pointeur int." fin de l'exemple

32voto

Amarghosh Points 33957

Vous pouvez utiliser `` commande shell linux de démystifier ces déclarations.

Si vous n’avez pas cdecl, vous pouvez l’installer en``

0voto

ub3rst4r Points 678

La partie représente un appel de fonction. Il n’est pas recommandé que les programmeurs utilisent des fonctions dans pour la simple raison que vous demandez à cette question. Il confond les autres personnes regardant le code.

Je devine qu’ils utilisent le typedef en utilisant quelque chose comme ceci :

-7voto

Harsh Points 682

typedef est la définition d'un nouveau type pour les utiliser dans votre code, comme une abréviation.

typedef typename _MyBase::value_type value_type;
value_type v;
//use v

typename ici est de permettre au compilateur de savoir que value_type est un type et non pas un objet à l'intérieur de _MyBase.

l' :: est la portée de ce type. C'est un peu comme "est" donc value_type "est dans" _MyBase. ou peut également être considéré comme l'contient.

Double Possible : C++ - sens d'un énoncé combinant la définition de type et le nom

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X