Возвращаемое значение функции в Visual studio - PullRequest
6 голосов
/ 18 января 2011

HI,

Я очень плохо знаком с Visual Studio.

Я пытаюсь отладить приложение.где я наткнулся на утверждение, подобное приведенному ниже:

double tmp = 
myPart->bat_qty() * timeFactor / myPart->AUB() * myPart->UCost * myAIM->param->myAnalysisParams->wd_year;

в VS, когда курсор установлен на

timeFactor
myPart->UCost
myAIM->param->myAnalysisParams->wd_year

, он показывает соответствующие значения.

myPart->bat_qty()
myPart->AUB()

Какой самый простой способ найти значения, возвращаемые этими функциями.Извиняюсь, если это кажется клише, но я совершенно новичок в VS.Мне нужен лучший способ найти возвращаемые значения без редактирования файлов для хранения значений в некоторых временных переменных. То есть я не могу редактировать файлы.

Ответы [ 4 ]

3 голосов
/ 18 января 2011

В VS 2010 вы можете установить точку останова на сайте вызова функций и активировать окно «Autos» (если окно Autos не отображается, вы можете сделать его видимым из «Отладка» -> Windows -> «Autos Ctrl + Alt + V»,А).В окне Autos после перехода через вызов функции (F10) вы увидите что-то в строках:

Имя Значение Тип

[Func] Возвращено [Возвращаемое значение] [Возвращаемый тип]

, где [Возвращаемое значение] и [Возвращаемый тип] являются подходящим возвращаемым значением и типом для вашей функции с именем [Func].

Надеюсь, это поможет.

Это имеетПреимущество в том, что вам не нужно редактировать код.Недостаток, который я вижу, состоит в том, что если возвращаемый тип является сложным, вы не можете расширить его и проверить его атрибуты, как если бы вы присваивали возвращаемое значение автоматической переменной.Однако для простых структур возвращаемое значение расширяется до чего-то вроде этого: {var1 = [val1], var2 = [val2] ...} где var1, var2 - атрибуты структуры.

НасколькоЯ знаю, что Autos Window есть (и делал то же самое) в VS 6.0, так что это относится и к VS 2005, я думаю (кто-то спрашивал и о VS 2005).

2 голосов
/ 18 января 2011

Самый быстрый способ - ввести myPart->bat_qty() в окне «Немедленно». Таким образом, вам не нужно менять код.

2 голосов
/ 18 января 2011

Назначьте их временным, как это:

const double bat_qty_val = myPart->bat_qty();
const double AUB_val = myPart->AUB();

затем используйте те, которые в уравнении, вместо вызова функций.

0 голосов
/ 18 января 2011

Вне моей головы, и я уверен, что будет более элегантный способ, но вы можете назначить возвращаемые значения bat_qty () и AUB () для временной переменной и просмотреть их в отладчике.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...