У меня есть привычка использовать такой код для отладки блоков, которые не очень тривиально, чтобы написать:временного код отладки отключения
if(0)
{
// debugging code
}
Проблемой является "warning C4127: conditional expression is constant"
.
Я сохраняю комментарии к старым кодам, которые могут быть удалены в любое время в будущем (но нужно сохранить какое-то время, чтобы иметь возможность следовать намерениям оригинального автора). Я мог бы использовать «#if 0», но я не вижу улучшения в удобочитаемости, наоборот (но это может быть вопросом вкуса).
Какой будет более дружелюбное, более читаемое, бесплатное решение?
(Так как это больше вопрос о стиле, может быть, есть более StackExchange место для него)
EDIT код отладки не эквивалентна конфигурации отладки (_DEBUG): как правило, находится в пределах _DEBUG, но я не хочу, чтобы осквернить его, так что я должен отключить его if (0)
В дополнение к предупреждению компилятора, исключая условный код через препроцессор, ускоряет компиляцию, поскольку компилятор вообще не видит отключенный код. И вы не полагаетесь на оптимизатора, чтобы понять, что его можно устранить, поэтому вы, вероятно, получите меньший исполняемый файл даже в неоптимизированной сборке. – Wyzard
@Wyzard Этот вид оптимизации ничто по сравнению с читабельностью. – Liviu
Я не думаю, что '#if 0' является менее читаемым, чем' if (0) '. – Wyzard