Для чего используется макрос препроцессора NDEBUG (на разных платформах)?

Меня интересует, какое назначение различные платформы / компиляторы («реализации») / фреймворки назначают макросу препроцессора C и C ++ NDEBUG .

В C , а также в стандарте C ++ это определение упоминается только один раз, а именно для управления поведением макроса assert () .

] Я бы попросил включить только конкретные ответы, где вы знаете , что определенная платформа / фреймворк / библиотека для C или C ++ использует определение NDEBUG для включения или отключения чего-либо еще в дополнение к стандартный определенный макрос assert () .

Одной из причин, по которой задается этот вопрос, было то, что MS (Visual-C ++) всегда (?) использует «свой» _DEBUG define чтобы различать отладку и выпуск, и мне было интересно, является ли это обычной практикой для библиотеки / платформы, чтобы иметь свое «собственное» определение отладки, или другие библиотеки / платформы используют NDEBUG для своих вещей, связанных с отладкой.

37
задан Brian Tompsett - 汤莱恩 12 March 2016 в 18:33
поделиться