Ключевое слово register
не относится к аппаратным регистрам ЦП.Этого не может быть, поскольку вы можете объявить любой тип переменной register
, а также те типы, которые никогда не вписываются в аппаратный регистр.
Это просто контракт с компилятором, что вы никогда не получите адрестакой переменной.Такое обещание от вас облегчит задачу оптимизации для компилятора.В частности, ваша переменная никогда не может иметь псевдоним, и в общем случае она не может изменяться извне потока прямого управления.