COHERENT manpages
This page displays the COHERENT manpage for register variable [Definition].
List of available manpages
Index
register variable -- Definition
register is a C storage class. A register declaration tells the compiler
to try to keep the defined local data item in a machine register. Under
COHERENT C, the int foo can be declared to be a register variable with the
following statement:
register int foo;
The COHERENT C compiler makes three registers available for variables: ESI,
EDI, and EBX. Subsequent register declarations are ignored, because no
registers are left to hold them.
By definition of the C language, registers have no addresses, so you cannot
pass the address of register variable as an argument to a function. For
example, the following code will generate an error message when compiled:
register int i;
. . .
dosomething(&i); /* WRONG */
This rule applies whether or not the variable is actually kept in a
register.
Placing heavily-used local variables into registers often improves
performance, but in some cases declaring register variables can degrade
performance somewhat.
See Also
auto,
extern,
Programming COHERENT,
static,
storage class







