Microchip Technology XC8 Standard Compiler (Workstation) SW006021-1 SW006021-1 User Manual

Product codes
SW006021-1
Page of 518
MPLAB
®
 XC8 C Compiler User’s Guide
DS52053B-page 164
 2012 Microchip Technology Inc.
Although a few devices implement more than 4 banks of data RAM, bank qualifiers to 
allow placement into these upper banks are not currently available.
These qualifiers are controlled by the compiler option --ADDRQUAL, which determines 
their effect, see Section 4.8.16 “--ADDRQUAL: Set Compiler Response to Memory 
Qualifiers”
. B
ased on this option’s settings, these qualifiers may be binding or ignored 
(which is the default operation). Qualifiers which are ignored will not produce an error 
or warning, but will have no effect.
Objects qualified with any of these qualifiers cannot be auto or parameters to a func-
tion, but can be qualified static, allowing them to be defined locally within a function, 
as in:
void myFunc(void) {
static bank1 unsigned char play_mode;
If the xc8 option, --STRICT is used, these qualifiers are changed to __bank0, 
__bank1
, __bank2 and __bank3.
5.4.8.5
EEPROM TYPE QUALIFIER
The eeprom type qualifier is recognized by the compiler for baseline and mid-range 
devices only and indicates that objects should be placed in the EEPROM memory. Not 
all devices implement EEPROM memory. Check your device data sheet for more infor-
mation.
Objects qualified with this qualifier cannot be auto or parameters to a function, but can 
be qualified static, allowing them to be defined locally within a function, as in:
void myFunc(void) {
static eeprom unsigned char inputData[3];
The generated code to access eeprom-qualified variables will be much longer and 
slower than code to access RAM-based variables.
If the --STRICT option is used, this qualifier is changed to __eeprom.