Everything
4.2.3 #pragma Directive

The following extended specifications can also be used with the _Pragma operator in C99.

(1)

Section Switch

This extension changes the section name to be output by the compiler.

For details on the description, refer to(1) Section Switch.

#pragma section [<section type>] [D<new section name>]

<section type>: { P | C | D | B }

(2)

Stack Section Creation

This extension creates the stack section.

For details on the description, refer to (2) Stack Section Creation.

#pragma stacksize { si=<constant> | su=<constant> }

(3)

Interrupt Function Creation

This extension creates the interrupt function.

For details on the description, refer to (3) Interrupt Function Creation.

#pragma interrupt [(]<function name>[(<interrupt specification>[,...])][,...][)]

(4)

Inline Expansion of Function

This extension expands a function.

For details on the description, refer to (4) Inline Expansion of Function.

#pragma inline [(]<function name>[,...][)]

(5)

Cancellation of Inline Expansion of Function

This extension cancels expansion of a function.

For details on the description, refer to (4) Inline Expansion of Function.

#pragma noinline [(]<function name>[,...][)]

(6)

Inline Expansion of Assembly-Language Function

This extension creates the assembly-language inline functions.

For details on the description, refer to (5) Inline Expansion of Assembly-Language Function.

#pragma inline_asm[(]<function name>[,...][)]

(7)

Entry Function Specification

This extension specifies the entry function.

For details on the description, refer to (6) Entry Function Specification.

#pragma entry[(]<function name>[)]

(8)

Bit Field Order Specification

This extension specifies the order of the bit field.

For details on the description, refer to (7) Bit Field Order Specification.

#pragma bit_order [{left | right}]

(9)

1-Byte Alignment Specification for Structure Members and Class Members

This extension specifies the boundary alignment value of structure members and class members as 1 byte.

For details on the description, refer to (8) Alignment Value Specification for Structure Members and Class Members.

#pragma pack

(10)

Default Alignment Specification for Structure Members and Class Members

This extension specifies the boundary alignment value for structure members and class members as the value for members.

For details on the description, refer to (8) Alignment Value Specification for Structure Members and Class Members.

#pragma unpack

(11)

Option Alignment Specification for Structure Members and Class Members

This extension specifies the option of the boundary alignment value for structure members and class members.

For details on the description, refer to (8) Alignment Value Specification for Structure Members and Class Members.

#pragma packoption

(12)

Allocation of a Variable to the Absolute Address

This extension allocates the specified variable to the specified address.

For details on the description, refer to (9) Allocation of a Variable to the Absolute Address.

#pragma address [(]<variable name>=<absolute address>[,...][)]

(13)

Endian Specification for Initial Values

This extension specifies an endian for initial values.

For details on the description, refer to (10) Endian Specification for Initial Values.

#pragma endian [{big | little}]

(14)

Specification of Function in which Instructions at Branch Destinations are Aligned to 4-Byte Boundaries

This extension specifies the function in which instructions at branch destinations are aligned to 4-byte boundaries.

For details on the description, refer to (11) Specification of Function in which Instructions at Branch Destinations are Aligned for Execution.

#pragma instalign4 [(]<function name>[(<branch destination type>)][,...][)]

(15)

Specification of Function in which Instructions at Branch Destinations are Aligned to 8-Byte Boundaries

This extension specifies the function in which instructions at branch destinations are aligned to 8-byte boundaries.

For details on the description, refer to (11) Specification of Function in which Instructions at Branch Destinations are Aligned for Execution.

#pragma instalign8 [(]<function name>[(<branch destination type>)][,...][)]

(16)

Specification of Function in which Instructions at Branch Destinations are not Aligned

This extension specifies the function in which instructions at branch destinations are not aligned.

For details on the description, refer to (11) Specification of Function in which Instructions at Branch Destinations are Aligned for Execution.

#pragma noinstalign [(]<function name>[,...][)]

(17)

Specification of Function for generating a code for detection of stack smashing [Professional Edition only] [V2.04.00 or later]

This extension generates a code for detection of stack smashing.

For details on the description, refer to (12) Specification of Function for generating a code for detection of stack smashing [Professional Edition only] [V2.04.00 or later].

#pragma stack_protector [(] function name [(num=<integer value>)] [)]

(18)

Specification of not generating a code for detection of stack smashing [Professional Edition only] [V2.04.00 or later]

This extension suppress generating generate a code for detection of stack smashing.

For details on the description, refer to (12) Specification of Function for generating a code for detection of stack smashing [Professional Edition only] [V2.04.00 or later].

#pragma no_stack_protector [(] function name [)]