Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > #ifdef _DEBUG


Автор: [ss]3L33T@ 5.12.2003, 14:46
#ifdef _DEBUG
...
#endif

Это типа, всё что вместо ... - будет выполнятся только во время дебуга?

Автор: shedon 5.12.2003, 14:52
Цитата
Это типа, всё что вместо ... - будет выполнятся

Великий язык !!?

Да, все, что между этими макросами будет, только, в дебаг версии.

Автор: [ss]3L33T@ 5.12.2003, 14:55
И на кой хрен это надо?

Автор: shedon 5.12.2003, 17:00
Например для контроля утечки памяти есть класс CMemoryState, он работает только в Debug версии, не будешь же ты чтоб сто раз не писать и не удалять переменные этого класса можно просто написать
Код

#ifdef _DEBUG
static CMemoryState oldstate, newstate, diffstate;
#endif
//...
#ifdef _DEBUG
oldstate.Checkpoint();
#endif
//...
#ifdef _DEBUG
newstate.Checkpoint();
if (diffstate.Difference(oldstate, newstate))
{
TRACE("Опасность: Утечка памяти\n");
diffstate.DumpStatistics();
}
#endif

У при компиляции релиз версии не надо будет удолять этот код.
И вообще много приходиться писать функций которые должны быть только в дебаг версии.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)