Если вы думаете о макросе так же, как Microsoft Excel, то вам не повезло. Это не совсем так работает.
В C ++ макрос ссылается на небольшую встроенную функцию, созданную с помощью #define. Это препроцессор, поэтому макрос похож на использование замены для всех своих ссылок со своим телом.
Например:
#define add(a,b) ((a)+(b))
int main() {
int a=3, b=4, c=5, d=6, e, f;
d = add(a,b);
e = add(c,d);
}
Хотелось бы, чтобы компилятор c ++ был:
int main() {
int a=3, b=4, c=5, ...;
d = ((a)+(b));
e = ((c)+(d));
}
Теперь вернемся к вашему вопросу. Если переменная находится в области видимости в этой точке останова, просто установите ее из своего кода:
myVar = myValue;
Если это не так, но он гарантированно существует, вам может понадобиться небольшой взлом. Скажите, что эта переменная является int, создайте глобальный указатель на int. Если эта переменная является статической, убедитесь, что для нее задан ее адрес, и обратно в NULL внутри ее области. Если он динамический, вам может потребоваться дополнительная работа. Вот пример:
int* globalIntPointer;
void func() {
*globalIntPointer = 3;
//...
}
int main() {
int a = 5;
globalIntPointer = &a;
func();
//...
globalIntPointer = NULL; // for safety sake
return 0;
}