Язык программирования C



         

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


Четвертый и последний класс памяти называется регистровым. описание register указывает компилятору, что данная переменная будет часто использоваться. Когда это возможно, переменные, описанные как register, располагаются в машинных регистрах, что может привести к меньшим по размеру и более быстрым программам. описание register выглядит как

register int x; register char c;

и т.д.; часть int может быть опущена. описание register можно использовать только для автоматических переменных и формальных параметров функций. В этом последнем случае описания выглядят следующим образом:

f(c,n) register int c,n; { register int i; ... }

На практике возникают некоторые ограничения на регистровые переменные, отражающие реальные возможности имеющихся аппаратных средств. В регистры можно поместить только несколько переменных в каждой функции, причем только определенных типов. В случае превышения возможного числа или использования неразрешенных типов слово register игнорируется. Кроме того невозможно извлечь адрес регистровой переменной (этот вопрос обсуждается в лекции №5). Эти специфические ограничения варьируются от машины к машине. Так, например, на PDP-11 эффективными являются только первые три описания register в функции, а в качестве типов допускаются int, char или указатель.




Содержание  Назад  Вперед