КАТЕГОРИИ: Архитектура-(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) |
Cовместное использование const и volatile
Модификатор volatile. Модификатор const. Иногда необходимо использовать некоторою величину, которая не изменяется на протяжении всей программы. Такая величина называется константой. Например, если в программе вычисляется площадь круга и длина окружности, часто будет использоваться константа pi=3.14159. При финансовых расчетах константой может быть процентная ставка. В подобных случаях можно улучшить читаемость программы, если дать константам осмысленные имена. В С и C++ для объявления константы перед ключевым словом (int, float или double) пишется const. К примеру:
const int iMIN=1, iSALE_PERCENTAGE=25; const float fbase_change=32.157; int irow_index=1,itotal=100,lobject; double ddistance=0,dvelocity;
6.5.5.2.Определение констант через #define. В С и C++ имеется еще один метод для задания констант: директива компилятора #define. Посмотрим на пример. Предположим, что в начале программы стоит оператор:
#define SALES_TEAM 10
Выше описывались два метода описания констант: при помощи ключевого слова const и при помощи директивы компилятора #define. Во многих Программах результат от использования любого метода, по сути, одинаков. С другой стороны, при использовании модификатора const создается переменная", значение которой нельзя изменить. Позднее вы узнаете, как объявлять переменные так, чтобы они существовали только в некоторых частях программы. То же самое можно сказать и о константах, объявленных с ключевым словом const. Поэтому объявления с модификатором const в чем-то гибче директивы #define. Следует добавить, что директива #define имеется в стандартном языке С и, следовательно, уже знакома программистам на С. В процессе использования языка Си выработалась традиция писать константы прописными буквами. Если при просмотре программы вам встретится имя, написанное прописными буквами, вы сразу поймете, что имеете дело с константой, а не с переменной. Это еще один способ улучшить читаемость программы.
Ключевое слово volatile означает, что переменная может неожиданно измениться в результате каких-то внешних событий. Например, следующее Описание указывает, что переменная event_time может менять свое значение независимо от программы:
volatile int event_time;
Подобное описание необходимо, если, к примеру, переменная event_time обновляется аппаратными средствами таймера реального времени. Программа, содержащая эту переменную, может прерываться аппаратурой таймера, что изменяет значение event_time.
Модификаторы const и volatile можно использовать с любыми другими типами данных (например, с char или float), а также совместно. Следующее описание указывает, что значение переменной constant_event_time в программе изменяться не будет:
const volatile constant_event_time;
Однако модификатор volatile предупреждает компилятор о том, что тот не должен делать допущений относительно значения переменной в любой момент времени. Следовательно, следует отметить два момента. Во-первых, компилятор выдаст сообщение об ошибке в любой строке программы, в которой будет сделана попытка изменить значение переменной constant_event_time. Во-вторых, компилятор не удалит переменную constant_event_time из циклов, так как внешний процесс во время работы программы тоже может менять переменную.
6.5.6. Модификаторы pascal, cdecl, near, far и huge. Первые два модификатора, pascal и cdecl, чаще всего используется в сложных приложениях. Microsoft Visual C/C++ позволяет создавать программы, которые с легкостью могут вызывать процедуры, написанные на разных языках. Также возможна связь и в обратном направлении. Например, можно написать программу на Паскале, вызывающую процедуру C++. При подобном смешении языков необходимо учитывать два момента: имена идентификаторов и способ передачи параметров. Когда Microsoft Visual C/C++ компилирует программу, все глобальные идентификаторы программы (функции и переменные) помещаются в выходной файл с объектным кодом для последующей компоновки. По умолчанию компилятор сохраняет эти идентификаторы, используя те же буквы, которые использовались в описаниях (заглавные, строчные или и те, и другие). Кроме этого, в начале идентификатора добавляется символ подчеркивания (_). Так как встроенный компоновщик Microsoft Visual C/C++ различает (по умолчанию) заглавные и строчные буквы, предполагается, что все внешние идентификаторы, объявленные в программе, сохраняют символ подчеркивания и тот вид, который они имели при объявлении (название и регистр букв).
Дата добавления: 2015-01-03; Просмотров: 890; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |