В языке С++ введена концепция определяемых пользователем констант для указания на то, что значение нельзя изменить непосредственно. Это может быть полезно в нескольких отношениях. Например, многие объекты не меняются после инициализации; использование символических констант приводит к более удобному в сопровождении коду, чем применение литералов непосредственно в тексте программы; указатели часто используются только для чтения, но не для записи; большинство параметров функций читаются, но не перезаписываются.
Чтобы объявить объект константой, в объявление нужно добавить ключевое слово const. Так как константе нельзя присваивать значения, она должна быть инициализирована. const int a = 100; // a является константой const int b[] = {1, 2, 3, 4, 5}; // Все b[i] являются константами const int c; // Ошибка – нет инициализатора!
Типичным является использование констант в качестве размера массивов и меток в инструкции case.
Отметьте, что const модифицирует тип, т.е. ограничивает возможное использование объекта, но не указывает способ размещения константного объекта. Простым и типичным использованием константы является тот случай, когда значение константы известно во время компиляции и под неё не требуется выделение памяти. Для массива констант, как правило, требуется выделение памяти, так как, в общем случае, компилятор не в состоянии определить, к какому элементу массива происходит обращение в выражении.
2.1.2. Объявление typedef
Объявление, начинающееся с ключевого слова typedef, вводит новое имя для типа, не для переменной данного типа. Целью такого объявления часто является назначение короткого синонима для часто используемого типа. Например, при частом применении unsigned char можно ввести синоним uchar. typedef unsigned char uchar; // Теперь uchar – синоним для unsigned char
Имена, вводимые с помощью typedef, являются синонимами, а не новыми типами. Следовательно, старые типы можно использовать совместно с их синонимами. Если вам нужны различные типы с одинаковой семантикой или с одинаковым представлением, обратитесь к перечислениям или классам.
Достарыңызбен бөлісу: |