Чтобы добавить ответ peoro в C ++, в ваших проектах релизов всегда должен быть определен NDEBUG, а в ваших проектах отладки всегда должен быть определен _DEBUG, чтобы вы могли проверять любой из них или создавать собственные директивы препроцессора для исключения кода.
Мне лично очень полезно время от времени иметь несколько моих собственных директив препроцессора, и отличное место для их размещения - в stdafx.h, если вы используете предварительно скомпилированные заголовочные файлы.Вы можете отключить целые функции или части кода, которые могут быть в процессе разработки или просто нежелательны для определенных сборок.Например, в одном приложении путем изменения одного определения я могу переключиться с OpenGl на DirectX или полностью исключить 3D-рендеринг из проекта.
Кроме того, вы можете создавать новые конфигурации для проектов, помимо отладки и выпуска, которые имеют определенные наборыof определяет и для включений или исключений и т. д. Вы можете захотеть две отладочные версии, например, одну, которая включает в себя трассировки отладки, и ту, у которой есть подробное ведение журнала, которое печатает почти весь стек во время выполнения.