Язык С

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


Четвертый и последний класс памяти называется регистро- вым. Описание 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 или указатель.



    Содержание раздела