Register variables
The maximum number of integer register variables is approximately six in 32-bit systems and fourteen in 64-bit systems.The maximum number of floating point register variables is eight in 32-bit systems andsixteen in 64-bit systems. Some compilers have difficulties making floating point register variables in 32-bit systems unless the SSE2 (or later) instruction set is enabled.The compiler will choose the variables that are used most for register variables. This includes pointers and references, which can be stored in integer registers. Typical candidates for register variables are temporary intermediates, loop counters, function parameters, pointers, references, 'this' pointer, common subexpressions, and induction variables (see below).A variable cannot be stored in a register if its address is taken, i.e. if there is a pointer or reference to it. Therefore, you should avoid making any pointer or reference to a variable that could benefit from register storage.
Источник
Не очень понимаю, почему переменная не может быть размещена в регистрах?
Переменная не может быть размещена в регистрах, если вам понадобится её адрес:
register int d;
scanf("%d", &d);
В данном случае функции scanf
требуется адрес переменной d
, чтобы записать туда введённое пользователем число.
Если переменная размещена в регистре, естественно, у неё нет адреса в оперативной памяти.
P.S. Всё это очень-очень сильно устарело. Современные компиляторы прекрасно размещают локальные переменные в регистрах без дополнительных указаний.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Вывести в терминал могу так std::wcout << serialNumber << std:: endl; Но мне нужно вывести в ncurses меню там используется printwНа что получаю ошибку main
Java selenium не открывается страница google drive