MPLAB C Compiler for PIC24 MCUs and dsPIC DSCs ... - Microchip
MPLAB C Compiler for PIC24 MCUs and dsPIC DSCs ... - Microchip
MPLAB C Compiler for PIC24 MCUs and dsPIC DSCs ... - Microchip
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
16-Bit C <strong>Compiler</strong> User’s Guide<br />
TABLE 3-15: CODE GENERATION CONVENTION OPTIONS (CONTINUED)<br />
Option Definition<br />
-fpack-struct Pack all structure members together without holes. Usually you<br />
would not want to use this option, since it makes the code<br />
sub-optimal, <strong>and</strong> the offsets of structure members won’t agree with<br />
system libraries.<br />
The <strong>dsPIC</strong> ® DSC device requires that words be aligned on even<br />
byte boundaries, so care must be taken when using the packed<br />
attribute to avoid run time addressing errors.<br />
-fpcc-structreturn<br />
Return short struct <strong>and</strong> union values in memory like longer<br />
ones, rather than in registers. This convention is less efficient, but<br />
it has the advantage of allowing capability between the 16-bit compiler<br />
compiled files <strong>and</strong> files compiled with other compilers.<br />
Short structures <strong>and</strong> unions are those whose size <strong>and</strong> alignment<br />
match that of an integer type.<br />
-fno-short-double By default, the compiler uses a double type equivalent to float.<br />
This option makes double equivalent to long double. Mixing<br />
this option across modules can have unexpected results if<br />
modules share double data either directly through argument<br />
passage or indirectly through shared buffer space. Libraries<br />
provided with the product function with either switch setting.<br />
-fshort-enums Allocate to an enum type only as many bytes as it needs <strong>for</strong> the<br />
declared range of possible values. Specifically, the enum type will<br />
be equivalent to the smallest integer type which has enough room.<br />
-fverbose-asm<br />
-fno-verbose-asm<br />
Put extra commentary in<strong>for</strong>mation in the generated assembly code<br />
to make it more readable.<br />
-fno-verbose-asm, the default, causes the extra in<strong>for</strong>mation to<br />
be omitted <strong>and</strong> is useful when comparing two assembler files.<br />
-fvolatile Consider all memory references through pointers to be volatile.<br />
-fvolatile-global Consider all memory references to external <strong>and</strong> global data items<br />
to be volatile. The use of this switch has no effect on static data.<br />
-fvolatile-static Consider all memory references to static data to be volatile.<br />
DS51284H-page 58 © 2008 <strong>Microchip</strong> Technology Inc.