Способ включения и выключения кода отладкиC++

Программы на C++. Форум разработчиков
Anonymous
Способ включения и выключения кода отладки

Сообщение Anonymous »

Я программировал манчестерский алгоритм декодирования для Arduino, и мне часто приходилось печатать отладочные материалы, пытаясь заставить все работать, но печать последовательных и строковых констант добавляла много накладных расходов. Я не могу просто оставить это в конечном двоичном файле.

Обычно я просто просматриваю код, удаляя все строки, связанные с отладкой.
Я ищу способ легко включать и выключать его.

Единственный известный мне способ:

Код: Выделить всё

 #if VERBOSE==1
Serial.println();
Serial.print(s);
Serial.print(" ");
Serial.print(t);
Serial.print(" preamble");
#endif

...

#if VERBOSE==1
Serial.println(" SYNC!\n");
#endif
и поверх файла я могу просто иметь

Код: Выделить всё

#define VERBOSE 0 // 1 to debug


Мне не нравится, сколько беспорядка это добавляет к одиночным строкам. Мне очень хотелось сделать что-нибудь очень противное. Но да, зло.

Измените все выходные данные отладки на

Код: Выделить всё

verbose("debug message");
затем используйте

Код: Выделить всё

#define verbose(x) Serial.print(x) //debug on
или

Код: Выделить всё

#define verbose(x) //debug off


Есть ли функция C++, которая позволяет мне делать это вместо препроцессора?

Подробнее здесь: https://stackoverflow.com/questions/289 ... on-and-off

Вернуться в «C++»