Конечно, для таких языков, как C и Ada, компилятор поместит значение из константы непосредственно в инструкцию на ассемблере, что означает, что не потребуется перестановка регистров или чтение из памяти сверх того, что требуется для запуска программы. , Это означает две вещи: основная - это скорость (вероятно, не так заметно во многих приложениях, если они не встроены), а вторая - использование памяти (как конечного размера двоичного файла программы, так и ее объема оперативной памяти).
Это поведение будет зависеть от языка и компилятора, так как язык будет диктовать любые предположения, сделанные вами (программистом), и, следовательно, ограничения для эффективности языка; и компилятор, потому что его поведение может измениться от обработки вашей константы как любой другой переменной до предварительной обработки вашего кода и максимально возможной оптимизации двоичной скорости и занимаемой площади.
Во-вторых, как заявили itsmatt и jball, он позволяет логически рассматривать элемент как элемент постоянной конфигурации, а не как «переменную»; особенно в языках программирования более высокого уровня и в интерпретируемых языках.