Действительно ли необходимо явно определять "undefine", даже когда определение закомментировано?

У меня были некоторые проблемы с выполнением этого кода:

#if TRACE
            dbgLog = new LogInfo( "PlatypusCE" );
#endif   

Это происходило, хотя "TRACE" было прокомментировано выше, сразу после большого блока общих комментариев:

//#define TRACE

Как только я добавил это ниже этого:

#undef TRACE

... так что это:

//#define TRACE
#undef TRACE

... хотя работает как надо (код "#if TRACE" не выполняется).

Действительно ли необходимо определить что-то, что не было определено (закомментировано)? Кажется, странно.

2 ответа

Решение

По умолчанию в профилях Debug и Release Visual Studio определяет TRACE постоянная. Вы можете изменить это поведение в настройках проекта (в Build вкладка). DEBUG Константа аналогична, активна по умолчанию в профиле отладки (но не в Release).

TRACE является одной из двух констант, определенных по умолчанию для отладочных сборок:

TRACE

Другие вопросы по тегам