Прекрасно с точки зрения программы не инициализировать переменную сразу.Итак, это:
int a;
// 10000 lines of code
// line 10001
a = 0
use(a);
совершенно нормально.
Но происходит то, что люди (включая меня) начнут использовать эту переменную до строки 10001
и забудут, что не инициализировали ее, получить мусор и чем думать, что что-то не так с кодом.Вы знаете, что атака паники, ПОЧЕМУ ЭТО НЕ РАБОТАЕТ? , и вы делаете что-то вроде этого:
int a;
// line 2001 this happens
use (a);
// 10000 lines of code
// line 10001
a = 0
use(a);
О, черт возьми, моя use(a)
функция не работает и чем тратите час илидве отладочные прекрасно работающие программы.Некоторые компиляторы предупреждают вас об этом, а некоторые нет.
Это похоже на ремень безопасности в автомобиле, маловероятно, что вы попадете в аварию, но вы все равно наденете его, и выне следует ждать, пока вы увидите полицейского, чтобы надеть его, из-за того небольшого шанса, что вы можете попасть в аварию, прежде чем доберетесь до полицейского.