Да, совершенно нормально определить символ DEBUG
самостоятельно. Но это не нормально, чтобы определить символ _DEBUG
(обратите внимание на начальное подчеркивание): символы, начинающиеся с подчеркивания и заглавной буквы, или два подчеркивания, зарезервированы для использования реализацией (то есть компилятор и набор инструментов). Так как они зарезервированы, вы не должны определять их самостоятельно, но вы, безусловно, можете проверить их существование. См. §7.1.3 стандарта C99.
Еще один символ, о котором следует знать, это NDEBUG
, который вы можете определять или не определять, но если вы определите его до включения <assert.h>
, это приведет к удалению всех операторов assert
.