4.2.3 #pragma directive

Below are #pragma directives supported as extended language specifications. See "4.2.5 Using extended language specifications" for details.

Table 4.14

List of Supported #pragma Directive

#pragma directive

Definition

#pragma interrupt [(]Function-name[(interrupt specification [,...])][)]

Hardware interrupt handler

#pragma interrupt_brk [(]Function-name[(interrupt specification [,...])][)]

Software interrupt handler

#pragma section [ section-type][ new-section-name]

Changing compiler output section name

#pragma rtos_interrupt [(]Function-name[(vect=address)][)]

Interrupt handler for RTOS

#pragma rtos_task [(]task-function-name [ ,...][)]

Task function for RTOS

#pragma inline [(]function-name [,...][)]

Inline expansion of function

#pragma noinline [(] function-name [,...][)]

#pragma inline_asm [(]function-name [,...][)]

Describing assembler instruction

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

Absolute address allocation specification

#pragma saddr [(]variable-name[,...][)]

Using saddr area

#pragma callt [(]function-name[,...][)]

callt function

#pragma near [(] function-name [,...][)]

near function

#pragma far [(] function-name [,...][)]

far function

#pragma pack

Structure packing

#pragma unpack

#pragma stack_protector [(]function-name[(num=number)][,function-name[(num=number)]][,...][)]

Generating a code for detection of stack smashing [Professional Edition only]

#pragma no_stack_protector [(]function-name[,...][)]