Bank qualifiers are not normally needed when writing program for an Omniscient Code Generation (OCG) compiler (such as the MPLAB® XC8 compiler), however, if there is assembly code that assumes these variables are in a certain bank then the C variables must be qualified using the bank qualifiers (bank0, bank1, bank2, etc).
The second thing that must be done is to ensure the qualifiers are honored by setting the --ADDRQUAL option to require, or set the Address qualifiers selector to require under the Compiler settings. Without this, the qualifiers will be ignored by the compiler.
If the variables are not qualified and placed in banks other than those expected by the assembly code, fixup errors may occur, or the code may fail. Projects are more portable if the assembly code always selects the bank of any object and applies the correct file address mask. In this way, there are no assumptions about the location of the objects accessed and the C variables do not need to be qualified.