ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Модификаторы доступа const и volatileМодификаторы доступа const и volatile были добавлены в Турбо С в соответствии со стандартом ANSI. Они помогают определить переменные (константы), которые не должны изменяться в ходе выполнения программы (const), и переменные, которые в ходе выполнения программы могут изменять свое значение (volatile). Использование модификатора const помогает избежать многих трудноуловимых ошибoк программирования, улучшает "читабельность", исходнoгo кода программы. Например, если в нескольких местах программы используeтcя одна и та же константа с большим количеством знаков, то велика вероятность совершить ошибку при наборе ее значения. В то же самое время ошибка в наборе имени переменной, описанной с модификатором const, будет немедленно обнаружена компилятором. Так как переменная-конcтaнтa не может встречаться в левой части оператора присваивания, то единственная возможность задать значение для нее - инициализация при описании. Пример const iпt max_count = 32767, step = 70; coпst long double pi = 3. 14159265358979323846; В остальном переменная const ведет себя так же, как и обычная переменная. Пример char const *str = “Monday”; В этом случае изменение значения указателя невозможны, но в программе можно выполнять: str[0] = ‘S’; str[1] = ‘a’; Вместе с тем, декларация вида: const char *str = “Monday”; позволяет защитить сам объект, с которым связан указатель.
Модификатор volati1e означает, что переменная может изменяться не только текущей программой, но и дрyгими процессами. Например, переменная, описанная в программе, может изменяться в результате работы обработчика прерываний. Модификатор volati1e инструктирует компилятор не делать каких-либо предположений относительно будущих значений переменной. Кроме того, компилятор во внутреннем коде создает некоторую «исключительную секцию» для доступа к переменной, чтобы избежать одновременного доступа к ней из разных программ. Пример volatile int ticks; void interrupt count (void) { ticks++; } void wait (int time_int) { ticks = 0; while(ticks < time_int); } Функция count() должна обрабатывать прерывания от таймера и оформляется как TSR-программа (лекция 16). В главной программе можно выполнять вызовы функции wait() для организации задержки ее выполнения в заданных точках, например так: wait(20);. Не нашли, что искали? Воспользуйтесь поиском:
|