Register (keyword)
From Wikipedia, the free encyclopedia
From Wikipedia, the free encyclopedia
In the C programming language, register
is a reserved word (or keyword), type modifier, storage class, and hint. The register
keyword was deprecated in C++, until it became reserved and unused in C++17. It suggests that the compiler stores a declared variable in a CPU register (or some other faster location) instead of in random-access memory. If possible depending on the type of CPU and complexity of the program code, it will optimize access to that variable and hence improve the execution time of a program. In C (but not C++ where the keyword is essentially ignored) the location of a variable declared with register
cannot be accessed, but the sizeof
operator can be applied.[1] Aside from this limitation, register
is essentially meaningless in modern compilers due to optimization which will place variables in a register if appropriate regardless of whether the hint is given.[citation needed] For programming of embedded systems register
may still be significant; for example the Microchip MPLAB XC32 compiler allows the programmer to specify a particular register with the keyword; however, this is discouraged in favor of the compiler's optimizations.[2] When used, register
is typically for loop counters, or possibly for other very frequently used variables in the code.
/* 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;
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.