begin process at 2012 05 30 07:55:45
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

typdef enum


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

typdef enum

jeudi 24 juin 2004 à 12:16:29 | typdef enum

oudkaramla

Membre Club

salut tout le monde,

j'ai un problem dans la définition d'une valeure d'un type enumeré et de lui affecter une valeure:
le ty enumeré est le suivant

typedef enum
{
KPDCDataTypeUnknown = 0, // This thing has no type!
KPDCDataTypeBool = 1, // type code for a bool
KPDCDataTypeInt32 = 2, // type code for a 32-bit integer
KPDCDataTypeString = 3, // type code for a string of 8-bit characters
// attrSize will be 0 or (strlen(s)+1)
KPDCDataTypeEnum = 4, // type code for an enum, represented in a 32-bit integer
KPDCDataTypeByteBlock = 5, // type code for a block of bytes.
KPDCDataTypeTime = 6, // type code for a time, seconds since Jan 1, 1970 or delta.
KPDCDataTypeGroupSeparator = 7, // type code for a group separator.
KPDCDataTypeInt32Array = 8, // type code for a 32-bit integer array
KPDCDataTypeInt16Array = 9, // type code for a 16-bit integer array
KPDCDataTypeFloat = 10, // type code for a floating point number
KPDCDataTypeInt8 = 11, // type code for an 8-bit integer
KPDCDataTypeUInt8 = 12, // type code for an unsigned 8-bit integer
KPDCDataTypeInt16 = 13, // type code for a 16-bit integer
KPDCDataTypeUInt16 = 14, // type code for an unsigned 16-bit integer
KPDCDataTypeUInt32 = 15, // type code for an unsigned 32-bit integer
KPDCDataType4CharCode = 16, // type code for a four character code (Mac OSType)
// - same as unsigned long.
KPDCDataTypeUInt16Array = 17, // type code for an unsigned 16-bit integer array
KPDCDataTypeRect = 18, // type code for KPDCRect ( four KPDCInt32 )
KPDCDataTypeFloatArray = 19, // type code for an array of float

KPDCDataTypes_end
} KPDCDataTypes;



moi par exemple je définir un variable valeure de type KPDCDataTypeEnum et de lui affecter la valeur 3 par exemple
comment faire merci
jeudi 24 juin 2004 à 13:17:43 | Re : typdef enum

ymca2003

fait un cast :
KPDCDataTypes val = (KPDCDataTypes) 3;

à faire seulement si tu es sur de ce que tu affecte car tu perd l'intérêt des enum (obliger une valeur à rester dans un espace limité)

jeudi 24 juin 2004 à 13:27:22 | Re : typdef enum

oudkaramla

Membre Club
MERCI
mais le 3 désigne la valeur "3" ou "KPDCDataTypeString = 3"?
jeudi 24 juin 2004 à 13:37:08 | Re : typdef enum

oudkaramla

Membre Club
JE T'explique j'ai à piloter une caméra. elle a une bibliothèque, moi je veux changer la valeure d'une propriété.
cette propriété peut prendre plusieures valeurs comme suit:

cameraexposuremode
R user enumerated (4 choises)
0=M
1=A
2=s
3=p

le changement de la propriété se fait par l'intermediaire d'une fonction de la librairie:


////////////////////////////////////////////////////////////////////////////////
//
// Function: KPDCSetAttributeValue
//
// Description:
// Set the value of the specified attribute ID
//
// Parameters:
// In: inRef - a reference to an object that has the attribute.
// inAttrID - the ID of an attribute of the object referred to by inRef.
// inType - The type of the attribute.
// inAttrSize - The size of the provided value buffer.
// inAttrValue - The address of the attribute value.
// Returns: Any of the tool kit errors, KPDC_InvalidAttrIDErr
////////////////////////////////////////////////////////////////////////////////

KPDCENTRY KPDCStatus KPDCSetAttributeValue( KPDCOpaqueRef inRef,
KPDCAttributeID inAttrID,
KPDCDataType inType,
KPDCUInt32 inAttrSize,
void* inAttrValue);


le problem qui se pose c'est comment dire à la caméra de prendre la valeur 3 (=p) par exemple tout en spécifiant que le type de inAttrValue est "KPDCDataTypeEnum = 4, " et qu'on lui affecte la valeur "3 ou P"?
MERCI
vendredi 25 juin 2004 à 00:00:27 | Re : typdef enum

ymca2003

j'ai pas trop pigé ce que tu souhaite faire mais voici un truc sur les enum :

quand tu déclare un type enuméré comme KPDCDataTypes, i ls'agit simplement d'un type entier dont les valeurs possibles appartiennent à un ensemble défini (celle de l'énumération).
les valeurs de l'énumération sont ainsi des constantes entières qui ne peuvent être affectées qu'a des variables du type de l'énumération. Ce principe permet au compilateur de vérifier que certaine varaibles ont toujours des valeurs "correctes".

en fait, tu pourrais très bien définir des constante avec des #define et les affectées ou les passer en paramètres aux fct mais dans ce cas, il n'y a pas de vérif de type de la part du compilo.

en fait je vient de relire ta question et "KPDCDataTypeEnum" n'est pas un type mais une valeur constante égale à 4. Toutes les valeurs de l'énumération aurait très bien pu être définies avec des #define
vendredi 25 juin 2004 à 00:19:36 | Re : typdef enum

ymca2003

je crois que j'ai compris ton pb. En fait la fct de paramètrage permet de donner des paramètres ayant plusieur type (int, string...). le paramètre inType permet de spécifié ce type parmis une énumération de type possible.
parmis ces types possibles, il y a un qui s'appelle KPDCDataTypeEnum qui indique que le paramètres supplémentaires sera un entier 32 bits (qui pourra faire partie d'une autre énumération et apparemment 0, 1, 2 ou 3)

donc il te faut définir une nouvelle enum:
typedef enum
{
EMyEnum_M = 0,
EMyEnum_a = 1,
EMyEnum_s = 2,
EMyEnum_p = 3,
}MyEnum;

et appeler la fct avec :
KPDCDataType inType = KPDCDataTypeEnum;
int value = EMyEnum_p;
KPDCSetAttributeValue(inRef, inAttrId, inType, sizeof(value), &value);


Cette discussion est classée dans : code, type, for, integer, bit


Répondre à ce message

Sujets en rapport avec ce message

typedef enum [ par oudkaramla ] salut tout le monde,j'ai un problem dans la définition d'une valeure d'un type enumeré et de lui affecter une valeure:le ty enumeré est le suivantty Type de variable inconnu [ par LordBob ] Bonjour a tous,voila je regarder un code est je suis tomber sur un type de variable que je ne connaissais pas, j'espère que vous pourrez m'aider !!!HI Comment gérer les propriétés d'une image dans le code ? [ par rogo ] Je souhaite réaliser un jeu de type jeu de dame. Pour ça, j'utilise VC++6.0.Je crée une fenetre IDD_FENETRE_DIALOG sur laquelle je positionne des imag Visual C++ 8.0 ?? [ par MasterShadows ] Salut à tous, alors voilà je voulais savoir si visual c++ 7 pouvait être télécharger, j'ai donc fait une recherche sur internet et j'aivu que la versi Code QBasic à convertir Cpp [ par SneakGuy ] Salut, j'ai besoin d'aide pour convertir ce code QBasic en Cpp...*Désoler, tous les signes"plus" sont remplacés par la lettre p. Merci.CLSFOR x = 1 Timers haute précision [ par SMarmotte ] Bonjour à tousJe cherche à attendre EXACTEMENT 60 micro secondes.J'ai fait cette routine mais elle me bouffe 50% du temps CPU du fait que je dois l'ap pb de conversion float => integer [ par Ricool ] SalutVoila j'ai un probleme pr convertir un float en integeret je ne vois pas trop comment faire vu ke c possible en bit à bit comme le fait le langag type 128 bit [ par BornBanane ] Bonjourvoila je fait un projet de cryptage et je travail donc sur des grand chiffres et il me faudrait un type fesant 128 bit ( se comportant comme de MultiByteToWideChar et tous ce qui va avec [ par BEAUBRIUS ] BonjourJe suis sous windows et j'utilise VS2005Je voudrai lister les fichiers et sous repertoire d'un dossier.Apres quelque recherche a ce sujet , j'a Code pour connaitre le type d'un element inséré dans une variable [ par bioshell ] J'ai un TP de C pur a faire qui consiste en une calculatrice dans l'environnement DOS. Je veux que mon code soit beton alors j'aimerais pouvoir savoir


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,373 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales