netlib.narod.ru< Назад | Оглавление | Далее >

4.7. Регистровые переменные

Объявление 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< Назад | Оглавление | Далее >

Сайт управляется системой uCoz