>>186473
Разница очень большая. Когда ошибку ловит компилятор, программа еще не начала работать со своими данными. А когда ошибка выпадает в рантайме, то если программист не является аккуратным, то есть очень высокая вероятность повредить данные с которыми работает программа, оставив их в промежуточном состоянии.
>if (get_backdoor = true)
Но на это же сейчас половина компиляторов выдают предупреждение. Переведи это предупреждение в ошибку в своем компиляторе, если боишься это сделать случайно.
>>186483
>и почему именно это «неопределённое поведение»?
Потому что стандарт определяет три возможных варианта для хранения отрицательных чисел в памяти в зависимости от реализации: two's complement, one's complement и sign-magnitude. Естественно, что некоторые вещи с числами, имеющими знак, в этом случае будут вести себя очень различно.
>надо достичь уровня, когда написание собственного компилятора воспринимается как легкая прогулка по саду
Не бредь. Написание компилятора и понимание, как представлены данные и числа в памяти, как реализуется цикл, как работают указатели — это вещи совершенно разного порядка.
>С настолько опупенен, что позволяет постигать суть программирования не зная до знакомства с ним ничего
Да, позволяет. Я уверен, что любой новичок без понимания основ сможет написать на C простейшие программы.
Но в процессе появления новых задач, усложнения программирования и отладки C заставит постепенно выучить то, как работает машина на уровне инструкций и репрезентации значений в регистрах и различных областях памяти, а это в действительности очень полезно будет любому новичку.