Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Changes since the previous manual

&pagelevel(3)&pagelevel

Compared to C/C++ version V4.0B03 some significant topics have changed.

The switch statement accepts an expression of type long long.

The content of the ETR file has changed. The new content can not be used with a compiler V4.0B03 or older.

Compared to C/C++ version V4.0B00 some significant topics have changed.

The library for the language modes C++2017 and C++ 2020 is now available in two versions. Version 1 is the default and compatible with the previous library. Version 2 implements some features of the standard C++ 2020. See the C/C++ user guide [4] for more details.

Compared to C/C++ version V4.0A30 some significant topics have changed.

The compiler now supports the language features of the C++ 2020 standard. See the C/C++ user guide [4] for some restrictions. Full library support is currently not available and instead the existing C++ 2017 library is used.

There is a new option for this language mode. The default language mode for the command CC is now C++ 2020. Up until version 4.0A30 it was C++ 2017.

The arguments of a printf call will be checked against the specifiers in the format string (see __printf_args pragma and __scanf_args pragma in the C/C++ user guide [4]).

Compared to C/C++ version V3.2D some significant topics have changed.

The changes in this manual compared to the C/C++ V3.2D User Guide mainly affect the new language modes C11 and C++ 2017 and the changes to compiler options due to them.

The most important point is the default setting of the compiler. If the language mode is not specified explicitly, it always uses the most modern implemented language standard. This was and is the case with version 3. For Version 3 the (then) most modern standard was C89. Now the compiler supports C11 and this is also the default. This is similar for C++. The version 3 had as (at that time) most modern standard a preliminary version of C++ 98, the current compiler supports C++ 17.

The new compiler now supports 10 language modes, 5 for C and 5 for C++. For better handling of this variety, the syntax for specifying the language mode has been redesigned. The options used in Version 3 will continue to be recognized and mapped to new options. The mapping is:

-X a

-X cc -X 1990 -X nostrict

-X c

-X cc -X 1990 -X strict

-X t

-X cc -X kr

-X w

-X CC -X V3 -X nostrict

-X e

-X CC -X V3 -X strict

-X d

-X CC -X V2

With the support of the new language modes, the recognition of questionable source constructs has also been revised. In some situations, messages are now different than C/C++ V3.2D. The error weight, the error number and the text may have changed. There are a few situations where either C/C++ V3.2 gives a message or C/C++ V4.0 but not both.