Функции по умолчанию для языка программирования, если на самом деле это документированная часть стандарта, а не просто случайность реализации (как было много прошлых «инициализаций по умолчанию»), ничем не отличаются от любых других функций программирования язык. С тем же успехом вы можете спросить, разумно ли полагаться на что-либо еще в языке, и ответ, независимо от мудрости, заключается в том, что выбора нет - вы должны полагаться на что-то, и что-либо гипотетически может быть изменено в будущей версии. *
Конечно, если вещь, на которую вы полагаетесь, является широко используемой особенностью языка, а не случайным угловым регистром, тогда гораздо больше шансов, что она будет сохранена в будущих версиях. Кроме того, если вы беспокоитесь о таких вещах, разумно выбрать хорошо зарекомендовавший себя язык с историей обратной совместимости. Некоторые языки прилагают большие усилия, чтобы гарантировать, что старый код работает в новой версии языка, а некоторые - нет.
Итак, это общий ответ. Конкретный ответ о значениях по умолчанию заключается в том, что это зависит от конкретного случая, языка и т. Д. Вы можете абсолютно уверенно полагать, что глобальные статические переменные в C будут равны нулю при запуске программы. Некоторые другие случаи значительно менее надежны.