Способ включения и выключения кода отладки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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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