2009-02-14 8 views
2

Si je déclare un ENUM comme suit:En utilisant « : nombre » tout en déclarant des variables

typedef enum A 
{ 
    a = 0x00000001, 
    b = 0x00000002 
} AObj; 

Maintenant, si je déclare une variable de AObj comme suit ce que cela signifie?

AObj myAObj : 2; 
+0

Avez-vous essayé de compiler cela? – yungchin

+0

ya désolé, je suppose que je devais mettre un, :) – Raghu

+0

vous pouvez également fixer le "=" manquant pendant que vous y êtes :) –

Répondre

4

C'est une manière de spécifier le nombre de bits utilisés. Cela signifie 2 signifie 2 bits.

Notez également que ceci n'est utile que lorsqu'il est utilisé avec d'autres champs de bits dans la même structure car l'alignement et le remplissage entraîneront l'omission de la mémoire.

4

Vous parlez probablement de "bit fields" qui vous permet de créer une structure dans laquelle vous pouvez adresser des bits individuels. Mais (! À moins que je me trompe) votre syntaxe est tout faux: il vous manque des virgules et le signe égal dans votre ENUM:

typedef enum A 
    { 
     a = 0x00000001, 
     b = 0x00000002 
    } AObj; 

Plus important encore, bitfields sont déclarés dans des struct s, il est donc pas tout à fait clair ce que vous Essayons de faire.

(Ou est-ce que cette utilisation du colon est une autre syntaxe que je ne connais pas ???)

+0

salut, merci pour la réponse, en fait je devais mettre un ',' pas ' " à l'intérieur de l'enum. Et je suppose que la réponse donnée est ce que je cherchais. – Raghu

Questions connexes