Skip to main content

IAR Embedded Workbench for RISC-V 3.40

Descriptions of miscellaneous preprocessor extensions

In this section:

The following pages reference information about the preprocessor extensions that are available in addition to the predefined symbols, pragma directives, and Standard C directives.

#include_next

Description

This is a variant of the #include directive. It searches for the named file only in the directories on the search path that follow the directory in which the current source file (the one containing the #include_next directive) is found.

NDEBUG

Description

This preprocessor symbol determines whether any assert macros you have written in your application shall be included or not in the built application.

If this symbol is not defined, all assert macros are evaluated. If the symbol is defined, all assert macros are excluded from the compilation. In other words, if the symbol is:

  • defined, the assert code will not be included

  • not defined, the assert code will be included

This means that if you write any assert code and build your application, you should define this symbol to exclude the assert code from the final application.

Note

The assert macro is defined in the assert.h standard include file.

In the IDE, the NDEBUG symbol is automatically defined if you build your application in the Release build configuration.

See also

__iar_ReportAssert

__STDC_WANT_LIB_EXT1__

Description

If this symbol is defined to 1 prior to any inclusions of system header files, it will enable the use of functions from Annex K, Bounds-checking interfaces, of the C standard.

See also

Bounds checking functionality and C bounds-checking interface.

#warning

Syntax
#warning message

where message can be any string.

Description

Use this preprocessor directive to produce messages. Typically, this is useful for assertions and other trace utilities, similar to the way the Standard C #error directive is used. This directive is not recognized when the ‑‑strict compiler option is used.