Redéfinir ou modifier la valeur de la macro
Je suis actuellement en train de travailler sur un projet écrit en MFC C++ et je suis face à un problème déjà présent macro avoir la définition:
#define HEIGHT_TESTS 13
Je suis en train de changer la valeur dans le code, mais je pense que depuis sa un prétraitées définition, je ne suis pas en mesure de le faire. Est-il une manière que je pourrais contourner ce problème sans avoir à modifier la macro d'origine globalement (comme cela peut affecter la fonctionnalité d'origine du programme). Je suis juste l'intention de le changer dans un état particulier, reste partout ailleurs, il reste le même.
Juste pour savoir à tout le monde, j'ai bien évidemment essayé à l'aide d'une autre macro définition de la valeur (17) j'ai l'intention de l'utiliser, mais pas de chance en tant que tel.
Toute aide serait grandement appréciée.
source d'informationauteur Neophile
Vous devez vous connecter pour publier un commentaire.
Vous pouvez
undef
ine etdefine
de nouveau:sorties:
7
Veuillez noter que les déclarations de départ avec
#
sont les directives de préprocesseur qui sont pris en charge avant que le même code est compilé. Dans ce cas, cette constanteAAA
sera tout simplement remplacé par7
c'est à dire qu'il fonctionne comme un texte de remplacement, avec pas de contrôles supplémentaires de la syntaxe, pas de type de sécurité, etc......qui est la principale raison pourquoi vous devriez éviter d'utiliser des macros et des
#define
s où ils peuvent être remplacés par des fonctions et des variables 🙂Pourquoi "textuelle de remplacement" ?
Regardez ce code:
préprocesseur va ligne par ligne, de haut en bas, en faisant ceci:
#define AAA 13
donc quand j'ai frappéAAA
la prochaine fois, je vais y mettre13
AAA
je suis le remplaçant par13
7
donc je vais arrêter d'utiliser13
redefAndPrint()
je vais y mettre7
transformer le code donné dans celui-ci:
qui sera de sortie
13713
et la dernière#define AAA 4
ne sera pas utilisé à tous.Quelque chose comme ce qui suit: