5.3.8.1 Const Type Qualifier
The const
type qualifier is used to tell the compiler
that an object is read-only and will not be modified. If any attempt is made to modify an
object declared const
, the compiler will issue a warning or error.
Auto and parameter objects qualified const
are treated
differently, but all other objects declared using const
are placed in a
special psect that is linked into the program memory space. These objects can also be made
absolute. The __at(address)
construct is used to place the object
at the specified address in program memory, as in the following example which places the
object tableDef
at address 0x100.
const int tableDef[] __at(0x100) = { 0, 1, 2, 3, 4};
Usually a const
object must be initialized when it is
declared, as it cannot be assigned a value at any point at runtime. For example:
const int version = 3;
will define version
as being a read-only int variable,
holding the value 3. However, uninitialized absolute extern const
objects
can be defined and are useful if you need to place an object in program memory over the top
of other objects at a particular location, as in the following example.
extern const char checksumRange[0x100] __at(0x800);
will define checksumRange
as an array of 0x100 characters
located at address 0x800 in program memory. This definition will not place any data in the
HEX file.