22.13 Preprocessing Directives

Implementation-Defined Behavior for Preprocessing Directives is covered in section G.3.13 of the ANSI C Standard.

Does the value of a single-character constant in a constant expression, that controls conditional inclusion, match the value of the same character constant in the execution character set? (ISO 6.8.1)

Yes.

Can such a character constant have a negative value? (ISO 6.8.1)

Yes.

What method is used for locating includable source files? (ISO 6.8.2)

The preprocessor searches the current directory, followed by directories named using command-line options.

How are headers identified, or the places specified? (ISO 6.8.2)

The headers are identified on the #include directive, enclosed between < and > delimiters, or between “ and ” delimiters. The places are specified using command-line options.

Are quoted names supported for includable source files? (ISO 6.8.2)

Yes.

What is the mapping between delimited character sequences and external source file names? (ISO 6.8.2)

The identity function.

Describe the behavior of each recognized #pragma directive. (ISO 6.8.6)

Table 22-4. #pragma Behavior
Pragma Behavior
#pragma code section-name Names the code section.
#pragma code Resets the name of the code section to its default (viz., .text).
#pragma config Sets configuration bits or registers.
#pragma idata section-name Names the initialized data section.
#pragma idata Resets the name of the initialized data section to its default value (viz., .data).
#pragma udata section-name Names the uninitialized data section.
#pragma udata Resets the name of the uninitialized data section to its default value (viz., .bss).
#pragma interrupt
 function-name Designates function-name as an interrupt function.

What are the definitions for __DATE__ and __TIME__ respectively, when the date and time of translation are not available? (ISO 6.8.8)

Not applicable. The compiler is not supported in environments where these functions are not available.