9.9.1 Const Type Qualifier
The const type qualifier is used to tell the compiler that an object is read only and must not be modified. The compiler will issue a warning or error if you attempt to modify an object declared const in source code.
A
const object is usually defined with initial values, as the program cannot
write to these objects at runtime. However this is not a requirement. An uninitialized
const object is allocated space in one of the bss sections, along
with other uninitialized RAM variables, but is still treated as read-only by the
compiler.const char IOtype = ’A’; // initialized const object
const char buffer[10]; // I just reserve memory in RAMObjects qualified
only with const are not guaranteed to be located in program memory. The
use of some options can affect where const-qualified object are
located. Objects qualified const might be placed in data memory when
the -fzero-initialized-in-bss, -fdata-sections, or
-mno-embedded-data options
are used. To explicitly request that the object be placed in program memory regardless
of the usage of the options listed, use the space(prog) attribute along
with the const qualifier (see 10.4 Variables in Program Memory).