Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 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);.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных