Microchip Technology SW006023-2 データシート
MPLAB
®
XC32 C/C++ COMPILER
USER’S GUIDE
2012 Microchip Technology Inc.
DS51686E-page 91
Chapter 5. ANSI C Standard Issues
This compiler conforms to the ANS X3.159-1989 Standard for programming languages.
This is commonly called the C89 Standard. It is referred to as the ANSI C Standard in
this manual. Some features from the later standard C99 are also supported.
This is commonly called the C89 Standard. It is referred to as the ANSI C Standard in
this manual. Some features from the later standard C99 are also supported.
5.1
DIVERGENCE FROM THE ANSI C STANDARD
There are no divergences from the ANSI C standard.
5.2
EXTENSIONS TO THE ANSI C STANDARD
C/C++ code for the MPLAB XC32 C/C++ Compiler differs from the ANSI C standard in
these areas: keywords, statements and expressions.
these areas: keywords, statements and expressions.
5.2.1
Keyword Differences
The new keywords are part of the base GCC implementation and the discussions in the
referenced sections are based on the standard GCC documentation, tailored for the
specific syntax and semantics of the 32-bit compiler port of GCC.
referenced sections are based on the standard GCC documentation, tailored for the
specific syntax and semantics of the 32-bit compiler port of GCC.
• Specifying Attributes of Variables – Section 6.12 “Variable Attributes”
• Specifying Attributes of Functions – Section 10.2 “Function Attributes and
• Inline Functions – Section 10.9 “Inline Functions”
• Variables in Specified Registers – Section 6.12 “Variable Attributes”
• Complex Numbers – Section 6.8 “Complex Data Types”
• Referring to a Type with typeof – Section 6.10 “Standard Type Qualifiers”
5.2.2
Statement Differences
The statement differences are part of the base GCC implementation, and the discus-
sions in the referenced sections are based on the standard GCC documentation,
tailored for the specific syntax and semantics of the 32-bit compiler port of GCC.
sions in the referenced sections are based on the standard GCC documentation,
tailored for the specific syntax and semantics of the 32-bit compiler port of GCC.
• Labels as Values – Section 8.4 “Labels as Values”
• Conditionals with Omitted Operands – Section 8.5 “Conditional Operator Oper-
• Case Ranges – Section 8.6 “Case Ranges”
5.2.3
Expression Differences
Expression differences are:
• Binary constants – Section 6.9 “Constant Types and Formats”.