An enumeration consists of a set of named integer constants
L'ID de classe n'est pas un droit constant?
Nous pouvons donner
enum {ID = 0};
nous pouvons aussi donner
nous ne pouvons pas
enum {ID = ClassID};
parce ClassID est pas un constant..See this et this lien
EDIT: Après avoir vu le commentaire
Au lieu de définir ClassID dans la fonction macro, renvoie la valeur onformément de la macro et attribuer cette valeur à macro ClassID dans le fichier lui-même .. Voyez comme je l'ai fait une exemple here..It est un C code..but logique de préprocesseur pour objectif C est similaire ..
#define max(A,B) ((A) > (B) ? (A):(B))
#define MYVAL max(2,3)
enum{
FIRSTVALUE = MYVAL,
OTHERTHING
};
void main(){
printf("%d and %d",SOMETHING,OTHERTHING);
return;
}
Hope this helps ..
@Krishnabhadra: J'ai édité mon code.Veuillez voir ce qui doit être changé.ClassID est déclaré comme constante seulement. – Angus
Quelle est votre exigence..ce que DECLARE_RS232_NEWMSG fait – Krishnabhadra
ID = ClassID (ClassID prendra tout IDValue eg.RM_REQUEST_SESSION = 0x11 ou RM_RESPONSE = 0x12 od RM_RES = 0x13 cette valeur est passée par DECLARE_RS232_NEWMSG (ClassID) macro) .Mon exigence est de récupère la valeur any de l'identifiant du message passé lors de l'exécution. – Angus