23.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 23-4. #pragma Behavior
PragmaBehavior
#pragma code section-nameNames the code section.
#pragma codeResets the name of the code section to its default (viz., .text).
#pragma configSets configuration bits or registers.
#pragma idata section-nameNames the initialized data section.
#pragma idataResets the name of the initialized data section to its default value (viz., .data).
#pragma udata section-nameNames the uninitialized data section.
#pragma udataResets the name of the uninitialized data section to its default value (viz., .bss).
#pragma interrupt
 function-nameDesignates 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.