Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.89
Winterad
3 / 3 / 0
Регистрация: 15.12.2012
Сообщений: 14
#1

Избавляемся от #ifdef DEBUG - C++

15.12.2012, 04:11. Просмотров 2612. Ответов 1
Метки нет (Все метки)

Доброго времени суток. В своем проекте для отладки использую:

C++
1
2
3
4
5
6
7
#define DEBUG
...
...
...
#ifdef DEBUG
    std::cout << index << " " << name<< std::endl;
#endif
При частом использовании #ifdef DEBUG и #endif портится вид кода.

Каким образом мне лучше избавится от #ifdef DEBUG и #endif, сохранив функционал опционального отсечения отладочного кода при компиляции без #define DEBUG?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2012, 04:11     Избавляемся от #ifdef DEBUG
Посмотрите здесь:

Директива #ifdef _DEBUG - C++
Добрый день, возникла следующая проблема: при переключении конфигурации Debug / Release директива #ifdef _DEBUG перестала реагировать на...

ifdef и Ко, указатели в фунциях - C++
1.как используются ifdef и endif 2. как реализоввать, ну например, такое: int myFunc(int *one, int *two, int *three) куда описание...

Что такое __SC__ в #ifdef? - C++
В одном из исходников есть такой код #ifdef __SC__ typedef long long LONGLONG; #else typedef __int64 LONGLONG; #endifИ такой (часть...

#ifdef _WIN32 что это? - C++
возник вопрос с кодом.с си и с++ не знаком.пожалуйста объясните что тут происходит? #ifdef _WIN32 #include &lt;windows.h&gt; ...

Команды #ifndef #ifdef и #endif - C++
Помогите разобраться с командами #ifndef #endif и #ifndef в книге все как то не понятно объяснено или же лучше если у кого то есть видео на...

Корректность использования #ifdef для предотвращения компиляции - C++
Здравствуйте! Есть шаблон Vector. Он определен в файле vector.hpp. Для выноса кода шаблона в отдельный файл я использовал метод...

С++ Debug Error!( - C++
Здравствуйте. Первый раз сталкиваюсь с подобными проблемами. Код работает верно, так как я и хотел. Проблема в том , что после...

Release/Debug - C++
Здравствуйте! Пишу сложную расчётную программу. И мне важна скорость выполнения программы. И хотел бы проконсультироваться. Делал с помощью...

debug error - C++
Здравствуйте, уважаемые программисты. Следующая проблема: после добавления блока if(round == 'g') и после запуска программы выдает...

Debug-ошибка - C++
Есть итератор, который ходит по графу в ширину или глубину Функция begin() Iterator &lt;Classofvertex&gt; begin() { ...

Debug errors - C++
В чем причина exceptionoв? #include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; int _tmain(int...

Debug error - C++
После запуска при вводе любого числа выдает debug error с предложение прервать, повторить или пропустить. Если нажимаю пропустить выдает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,009
15.12.2012, 06:43     Избавляемся от #ifdef DEBUG #2
Очевидно, если в конкретном месте условная компиляция мозолит глаза, ее надо вынести куда-нибудь.

Вспомним макрос assert. Если определен макрос NDEBUG, assert определяется примерно так:
C++
1
#define assert(ignore)((void) 0)
Можно по аналогии написать свою библиотечку логирования, либо поискать готовые решения. Например: http://code.google.com/p/google-glog/
Yandex
Объявления
15.12.2012, 06:43     Избавляемся от #ifdef DEBUG
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru