Skip to main content

IAR Embedded Workbench for Arm 9.70.x

IAR language overview

In this section:

The IAR C/C++ Compiler for Arm supports:

  • C, the most widely used high-level programming language in the embedded systems industry. You can build freestanding applications that follow these standards:

    • Standard C—also known as C18. Hereafter, this standard is referred to as Standard C.

    • C89—also known as C94, C90, and ANSI C.

  • Standard C++—also known as C++17. A well-established object-oriented programming language with a full-featured library well suited for modular programming. The IAR implementation of Standard C++ can be used with different levels of support for exceptions and runtime type information (RTTI), and offers a choice of two different standard libraries:

    • DLIB, which is a C++14 library, and which comes in two configurations: Normal and Full. The Normal configuration is smaller and offers slightly less functionality.

    • Libc++, which is a C++17 library. It has only one configuration, corresponding to the Full configuration of the DLIB library.

Each of the supported languages can be used in strict or relaxed mode, or relaxed with IAR extensions enabled. The strict mode adheres to the standard, whereas the relaxed mode allows some common deviations from the standard. Both the strict and the relaxed mode might contain support for features in future versions of the C/C++ standards.

For more information about C, see Using C.

For more information about C++, see Using C++.

For information about how the compiler handles the implementation-defined areas of the languages, see Implementation-defined behavior for Standard C and Implementation-defined behavior for Standard C++.

It is also possible to implement parts of the application, or the whole application, in assembler language. See the IAR Assembler documentation.