rreeggiisstteerr vvaarriiaabbllee -- Definition

rreeggiisstteerr is  a C storage class.  A rreeggiisstteerr  declaration tells the compiler
to try  to keep the defined  local data item in  a machine register.  Under
COHERENT C, the iinntt ffoooo 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: EESSII,
EEDDII,  and EEBBXX.  Subsequent rreeggiisstteerr  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  rreeggiisstteerr variables  can degrade
performance somewhat.

_S_e_e _A_l_s_o
aauuttoo, ddeeffiinniittiioonnss, eexxtteerrnn, ssttaattiicc, ssttoorraaggee ccllaassss

_N_o_t_e_s
