Символьные константы проходят некоторую проверку типов, обычно компилятор скажет вам, является ли константа слишком большой, чтобы поместиться в место, где вы ее присваиваете
Константы перечисления вообще не проверяют типы, поскольку они просто int
.В отличие от этого переменные типа перечисления могут получить некоторую проверку типа и диапазона.
Нет такой вещи, как постоянные переменные, вы, вероятно, имеете в виду const
квалифицированные переменные.Да, они безопасны, но не являются константами в том, как C понимает слово константа.Думайте о них лучше как unmutable
или invariant
.
Константы в смысле C не занимают места, они просто символические значения, необходимые во время компиляции, нет объектов, которые соответствуют им во время компиляциивыполнение.