Справочник Пользователя для Microchip Technology XC8 Standard Compiler (Workstation) SW006021-1 SW006021-1

Модели
SW006021-1
Скачать
Страница из 518
Common C Interface
 2012 Microchip Technology Inc.
DS52053A-page 27
2.5.3.3
MIGRATION TO THE CCI
For 8-bit compilers, change any occurrence of the far qualifier, as in the following 
example:
far char template[20];
to __far, i.e., __far char template[20];
In the 16- and 32-bit compilers, change any occurrence of the far attribute, as in the 
following
void bar(void) __attribute__ ((far));
int tblIdx __attribute__ ((far));
to
void __far bar(void);
int __far tblIdx;
2.5.3.4
CAVEATS
None.
2.5.4
Near Objects
The __near qualifier may be used to indicate that variables or functions may be 
located in ‘near memory’. Exactly what constitutes near memory is dependent on the 
target device, but it is typically memory that can be accessed with less complex code. 
Expressions involving near-qualified objects may be faster and result in smaller code.
Use the native keywords discussed in the Differences section to look up information on 
the semantics of this qualifier.
Some devices may not have such memory implemented, in which case, use of this 
qualifier will be ignored. Stack-based (auto and parameter) variables cannot use the 
__near
 specifier.
2.5.4.1
EXAMPLE
The following shows a variable and function qualified using __near.
__near int serialNo;
__near int ext_getCond(int selector);
2.5.4.2
DIFFERENCES
The 8-bit compilers have used the qualifier near to indicate this meaning. Functions 
could not be qualified as near.
The 16-bit compilers have used the near attribute with both variables and functions.
The 32-bit compilers have used the near attribute for functions, only.