J'ai créé cette structure de données:Problème de débogueur étrange?
class Event
{
public:
Event(EVENT_TYPE type, void* pSender = 0, int content1 = 0,
int content2 = 0, int content3 = 0, int content4 = 0);
~Event(void);
// ... some functions
protected:
EVENT_TYPE itsType;
void* itsPointerToSender;
int itsContent_1;
int itsContent_2;
int itsContent_3;
int itsContent_4;
int numStacked;
};
dont le constructeur est tout simplement
Event::Event(EVENT_TYPE type, void* pSender, int content1, int content2, int content3, int content4)
: itsType(type),
itsPointerToSender(pSender),
itsContent_1(content1),
itsContent_2(content2),
itsContent_3(content3),
itsContent_4(content4),
numStacked(0)
{
}
Pour une raison étrange, je ne comprends pas, le débogueur VS ne peut pas et ne sera pas me montrer tout ce qui est contenu dans itsContent_4
. Si je mets une montre sur la variable, itsContent_4
me donne un symbol "itsContent_4" not found
tout en faisant la même chose avec itsContent_3
fonctionne parfaitement. Je ne suis pas sûr que la variable existe même en ce qui concerne le compilateur!
Ai-je oublié quelque chose ici?
Editer: Maintenant, il semble (encore plus étrange) que changer l'ordre des variables dans la déclaration crée un désordre encore plus grand! J'ai essayé de placer itsContent_4
avant itsContent_1
et maintenant itsContent_1
est en cours d'initialisation avec la valeur prévue pour itsContent_4
! Qu'est-ce qui se passe ici? Je soupçonne quelque chose à faire avec le nommage, alors je vais essayer de les renommer tous et voir ce qui se passe.
Edit 2: Oui, changeant apparemment les noms de variables à itsContent_a
au lieu de itsContent_1
et ainsi de suite fonctionne parfaitement. Y a-t-il une restriction quant à l'utilisation de nombres dans un nom de variable?
Peut-être qu'il est optimisé. Essayez de le rendre volatil ou de vous assurer que l'affectation a un effet secondaire (la variable est utilisée plus tard dans le code). –
Certainement être utilisé plus tard. Et j'essaie cela sans optimisation de toute façon. –
Il n'y a aucune restriction C++ sur l'utilisation de chiffres dans un nom de variable (sauf qu'ils ne peuvent pas démarrer le nom); tout ce que vous avez écrit ressemble parfaitement à un bon C++. Vous pouvez faire une liste avec l'expansion du préprocesseur et vérifier ces noms, au cas où quelque chose d'étrange se produirait avec des macros. À part ça, je suis à perte. –