Vault 7: Projects
This publication series is about specific projects related to the Vault 7 main publication.
MPLAB
®
XC16 C Compiler Users Guide
DS50002071C-page 6 2012-2013 Microchip Technology Inc.
6.7 Bit-Reversed and Modulo Addressing ........................................................ 112
Chapter 7. Differences Between MPLAB XC16 and ANSI C
7.1 Divergence from the ANSI C Standard ...................................................... 113
7.2 Extensions to the ANSI C Standard ........................................................... 113
7.2.1 Keyword Differences ................................................................................113
7.2.2 Expression Differences ............................................................................113
7.3 Implementation-Defined Behavior .............................................................. 113
Chapter 8. Supported Data Types and Variables
8.1 Introduction ................................................................................................. 115
8.2 Identifiers .................................................................................................... 115
8.3 Integer Data Types ..................................................................................... 116
8.3.1 Double-Word Integers ..............................................................................116
8.3.2 char Types ...............................................................................................117
8.4 Floating-Point Data Types .......................................................................... 117
8.5 Fixed-Point Data Types .............................................................................. 118
8.6 Structures and Unions ................................................................................ 119
8.6.1 Structure and Union Qualifiers .................................................................119
8.6.2 Bit-fields in Structures ..............................................................................119
8.7 Pointer Types ............................................................................................. 121
8.7.1 Combining Type Qualifiers and Pointers .................................................121
8.7.2 Data Pointers ...........................................................................................122
8.7.3 Function Pointers .....................................................................................122
8.7.4 Special Pointer Targets ............................................................................122
8.8 Complex Data Types .................................................................................. 123
8.9 Literal Constant Types and Formats .......................................................... 124
8.10 Standard Type Qualifiers .......................................................................... 126
8.10.1 Const Type Qualifier ..............................................................................126
8.10.2 Volatile Type Qualifier ............................................................................126
8.11 Compiler-Specific type Qualifiers ............................................................. 127
8.11.1 __psv__ Type Qualifier ..........................................................................127
8.11.2 __prog__ Type Qualifier ........................................................................127
8.11.3 __eds__ Type Qualifier ..........................................................................128
8.11.4 __pack_upper_byte Type Qualifier ........................................................128
8.11.5 __pmp__ Type Qualifier .........................................................................128
8.11.6 __external__ Type Qualifier ...................................................................129
8.12 Variable Attributes .................................................................................... 130
Chapter 9. Fixed-Point Arithmetic Support
9.1 Introduction ................................................................................................. 139
9.2 Enabling Fixed-Point Arithmetic Support .................................................... 139
9.3 Data Types ................................................................................................. 139
9.4 Rounding .................................................................................................... 140
9.5 Division By Zero ......................................................................................... 140
9.6 External Definitions .................................................................................... 141
9.7 Mixing C and Assembly Language Code ................................................... 141
Protego_Release_01_05-Related-OEM-Documentation-MPLAB-XC16-C-Compiler.pdf