зарегистрироваться (ключевое слово)
На языке программирования Си , register
— это зарезервированное слово (или ключевое слово), модификатор типа, класс хранения и подсказка. register
Ключевое слово устарело в C++ , пока оно не стало зарезервированным и неиспользованным в C++17 . Это предполагает , что компилятор сохраняет объявленную переменную в ЦП регистре (или другом более быстром месте), а не в оперативной памяти . Если это возможно, в зависимости от типа ЦП и сложности программного кода, это оптимизирует доступ к этой переменной и, следовательно, улучшит время выполнения программы. В C (но не в C++, где это ключевое слово по существу игнорируется) расположение переменной, объявленной с помощью register
невозможно получить доступ, но sizeof
можно применить оператор. [1] Помимо этого ограничения, register
по существу бессмысленно в современных компиляторах из-за оптимизации, которая при необходимости помещает переменные в регистр независимо от того, дается ли подсказка. [ нужна ссылка ] Для программирования встраиваемых систем register
может все еще быть значительным; например, компилятор Microchip MPLAB XC32 позволяет программисту указать конкретный регистр с помощью ключевого слова; однако это не рекомендуется в пользу оптимизации компилятора. [2] При использовании, register
обычно используется для счетчиков циклов или, возможно, для других очень часто используемых переменных в коде.
Примеры
[ редактировать ]/* store integer variable "i" in RAM, register, or other location as compiler sees fit */
int i;
/* suggests storing integer variable "i" in a CPU register or other fast location */
register int i;
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «МЕЖДУНАРОДНЫЙ СТАНДАРТ ISO/IEC 9899:TC2» (PDF) .
- ^ «Руководство пользователя компилятора MPLAB® XC32 C/C++» (PDF) . п. 170.