КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Препроцессорные константы
Перечислимые константы Константы перечислимого типа вводятся с помощью ключевого слова enum. Это обычные целочисленные константы, которым приписаны уникальные и удобные для использования обозначения (идентификаторы, отражающие назначение, смысл константы): enum {one=1, two=2, three=3}; // one, two, three – условные имена, //введенные для обозначения констант enum color {red, yellow, green}; //значения приписываются по умолчанию: red=0,… // color – название перечислимого типа enum {red=10, yellow=3, green=4}; //приписываются указанные значения: red=10 и т.д. enum {red=10, yellow=3, green=10}; enum {red=10, yellow=3, green=red*10}; enum {red=-2, yellow, green};
Препроцессорные константы – также возможный способ определения констант в С++. Для этого используется директива препроцессора #define: #define IDENTIFICATOR ZAMENA Эта директива вызывает замену в тексте программы каждого появления имени IDENTIFICATOR на текст ZAMENA. Например: #defineMAX_LEN 100 //в программе имя MAX_LEN заменится на 100
С помощью директивы #define можно выполнять «настройку» программы. Например, если в программе предполагается работать с массивом, то его размер можно явно определить на этапе препроцессорной обработки заданием именованного литерала:
При таком описании легко изменять предельные размеры сразу всех массивов, изменив только одно значение в команде #define. В то же время сегодня такой способ определения именованных констант в С++ используется редко.
Обратите внимание на особенности работы с константами: 1. Примеры определений целой константы: const int I = 7; // целая константа //I = 9; неверно, значение константы не должно изменяться
// const int J; неверно, отсутствует начальное значение константы const int K(4); // верно, инициализация целой константы 2. Примеры определений символьной константы: const char C='1'; const char D=49; // 49 – это код ‘1’ в 10-ичной с/с const char DD= 0 61; // 61 – это код ‘1’ в 8 -ичной с/с const char DDD= 0x 31; // 31 – это код ‘1’ в 16 -ичной с/с const char ED='\0x31'; //задание символьной константы ESC-последовательностью в 16 с/с const char EDD='\61'; //задание символьной константы ESC-последовательностью в 8 с/с 3. Примеры определений вещественной константы: const float F = 1.5f; const double DF = 1.5; const long double D = -3.7L; const double EXPF = 5.55e-12;
4. Для уточнения типа константы можно использовать суффикc:
123 //тип signed int 11234L или 11234l //тип signed long int 123U или 123u //тип unsigned int 2.78F или 2.78f //тип float 2.78 //тип double 2.78L или 2.78l //тип long double
5. Следующие объявления констант не эквивалентны: const int K = 7; #define K 7
В первой строке определяется именованная типизированная константа – переменная, занимающая некоторую область памяти, а во второй – препроцессорная константа.
Дата добавления: 2015-06-25; Просмотров: 845; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |