07.04.2013 Views

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

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!