Microchip Technology SW006022-1N Data Sheet

Page of 338
Common C Interface
 2012 Microchip Technology Inc.
DS52071B-page 43
2.5.12
Indicating Antiquated Objects
The __deprecate specifier may be used to indicate that an object has limited longev-
ity and should not be used in new designs. It is commonly used by the compiler vendor 
to indicate that compiler extensions or features may become obsolete, or that better 
features have been developed and which should be used in preference.
Use the native keywords discussed in the Differences section to look up information on 
the semantics of this specifier.
2.5.12.1
EXAMPLE
The following shows a function which uses the __deprecate keyword.
void __deprecate getValue(int mode)
{
//...
}
2.5.12.2
DIFFERENCES
No deprecate feature was implemented on 8-bit compilers.
The 16- and 32-bit compilers have used the deprecated attribute (note different spell-
ing) to indicate that objects should be avoided if possible.
2.5.12.3
MIGRATION TO THE CCI
For 16- and 32-bit compilers, change any occurrence of the deprecated attribute, as 
in the following example:
int __attribute__(deprecated) intMask;
to:
int __deprecate intMask;
2.5.12.4
CAVEATS
None.
2.5.13
Assigning Objects to Sections
The __section() specifier may be used to indicate that an object should be located 
in the named section (or psect, using the XC8 terminology). This is typically used when 
the object has special and unique linking requirements which cannot be addressed by 
existing compiler features.
Use the native keywords discussed in the Differences section to look up information on 
the semantics of this specifier.
2.5.13.1
EXAMPLE
The following shows a variable which uses the __section keyword.
int __section("comSec") commonFlag;