netlib.narod.ru | < Назад | Оглавление | Далее > |
Объявление register сообщает компилятору, что данная переменная будет интенсивно использоваться. Идея состоит в том, чтобы переменные, объявленные как register, разместить в регистрах процессора машины, благодаря чему программа, возможно, станет более короткой и быстрой. Однако компилятор имеет право проигнорировать это указание.
Объявление register выглядит следующим образом:
register int x; register char c;
и т.д. Объявление register может применяться только к автоматическим переменным и к формальным параметрам функции. Для последних это выглядит так:
f(register unsigned m, register long n) { register int i; ... }
На практике существуют ограничения на регистровые переменные, связанные с возможностями аппаратуры. Располагаться в регистрах может лишь небольшое число переменных каждой функции, причем только определенных типов. Избыточные объявления register для переменных, которым не хватило регистров или которые нельзя размещать в регистрах просто игнорируются. Кроме того, применительно к регистровой переменной независимо от того, выделен на самом деле для нее регистр или нет, не определено понятие адреса (см. главу 5). Конкретные ограничения на количество и типы регистровых переменных зависят от машины.
netlib.narod.ru | < Назад | Оглавление | Далее > |