Я знаю, что для C++ и Java это хорошо установленное соглашение об именах, что константы должны быть записаны в верхнем регистре, с подчеркиваниями для разделения слов. Как это (Java-пример):Именование: почему переменные named должны быть прописными в C++/Java?
public final static Color BACKGROUND_COLOR = Color.WHITE;
public final static Color TEXT_COLOR = Color.BLACK;
этого именование легко понять и следовать, но я спрашиваю себя, почему выбираю это именование, по сравнению с обычным именованием-конвенцией для переменных:
public final static Color backgroundColor = COLOR.WHITE;
public final static Color textColor = COLOR.BLACK;
Кажется, что нет необходимости менять внешний вид констант. Если мы хотим присвоить им значение, компилятор так или иначе предотвратит это. На самом деле это создает проблемы, если позже константа будет изменена на правильную переменную (потому что цвета могут быть сконфигурированы, например).
Итак, какова конечная причина для написания названных констант всех прописных букв? Исторические причины?
На самом деле не рекомендуется указывать константы во всех прописных буквах на C++. ALL_UPPER_CASE - это соглашение для макросов препроцессора. Таким образом, ваши константы могут столкнуться и получить clobbered с помощью символов препроцессора. –
Это может быть лучше всего использовать как сообщество wiki – lothar