На самом деле большинство правил именования в C ++ (включая ISO, Boost, Sutter & Stroustrup и Google) категорически не одобряют использование констант имен со всеми заглавными буквами. Это связано с тем, что в макросах также используются все заглавные буквы, и они могут быть засорены в заголовочных файлах, что может привести к странному поведению. Люди все равно используют все заглавные буквы, потому что они учатся на старом C / K & R или старом унаследованном коде. Однако в новом коде Modern C ++ вы должны избегать использования всех заглавных букв для чего-либо, кроме макросов.
Моя любимая теория, почему все заглавные буквы существуют вообще, заключается в том, что на очень старых машинах код вводился непосредственно в машинный код с использованием цифровых клавиатур. Когда на сцене появился язык ассемблера, он использовал только заглавные буквы, потому что клавиатура в то время не была стандартизирована, а некоторые клавиатуры были ограничены, например, для ввода алфавитов использовались те же цифровые клавиатуры, что и в обычных телефонах. Это затем перенесено на многие ранние языки, такие как бейсик, который охватывает все. Когда фактические терминалы стали доступны и клавиатуры стали стандартизироваться, люди начали использовать смешанные регистры без резервирований, и все заглавные буквы были зарезервированы для чего-то, что встречается редко, например, констант по сравнению с функциями и переменными.
Большинство руководств C ++ теперь согласны с использованием «k» в качестве префикса для константы, за которой следует имя с подчеркиванием или CamelCase. Я лично предпочитаю kCameCase, потому что он легко позволяет отличить переменные с именами under_scores.
const float kFixedRadius = 3.141;