4.1.4 C99 language function

This section describes the C99 language functions supported by the CC-RH.

(1)

Comment by //

Text from two slashes (//) until a newline character is a comment. If there is a backslash character (\) immediately before the newline, then the next line is treated as a continuation of the current comment.

(2)

Concatenating wide character strings

The result of concatenating a character string constant with a wide character string constant is a wide character string constant.

(3)

_Bool type

_Bool type is supported.

(4)

long long int type

long long int type is supported. long long int type is 8-byte of integer type.

Appending "LL" to a constant value is also supported. It is also possible to specify this for bit field types.

(5)

Integer promotion

In accordance with support for types _Bool and long long, integer promotion is also in accordance with the C99 specification.

(6)

Existing argument expansion

In accordance with support for types _Bool and long long, existing argument expansion is also in accordance with the C99 specification..

-

Functions are called after expanding type _Bool_ to type int (4 bytes).

-

Functions are called with type (unsigned) long long remaining as an 8 bytes value.

(7)

Comma permission behind the last enumeration child of a enum definition

When defining an enum type, it is permissible for the last enumerator in the enumeration to be followed by a comma (,).

enum EE {a, b, c,};

(8)

Inline keyword (inline function)

Inline keyword is supported.

This can also be specified using a pragma directive, via the following format.

#pragma inline [(]function-name[, function-name, ...][)]

For the details of expansion specification, see "4.2.4.3 Inline expansion".

(9)

Types of integer constants

In accordance with the addition of type long long, the types of integer constants are as follows.

The type of an integer constant will be the first type in the lists below capable of representing that value.

Table 4.6

Types of Integer Constants (If type long long is enabled (when -Xansi is not specified))

Suffix

Decimal Constant

Octal Constant or Hexadecimal

None

int

long int

unsigned long intNote

long long int

unsigned long long int

int

unsigned int

long int

unsigned long int

long long int

unsigned long long int

u or U

unsigned int

unsigned long int

unsigned long long int

unsigned int

unsigned long int

unsigned long long int

l or L

long int

unsigned long intNote

long long int

unsigned long long int

long int

unsigned long int

long long int

unsigned long long int

Both u or U, and l or L

unsigned long int

unsigned long long int

unsigned long int

unsigned long long int

ll or LL

long long int

unsigned long long int

long long int

unsigned long long int

Both u or U, and ll or LL

unsigned long long int

unsigned long long int

Note

Different from C99 specification

Table 4.7

Types of Integer Constants (If type long long is disabled (when -Xansi is specified))

Suffix

Decimal Constant

Octal Constant or Hexadecimal

None

int

long int

unsigned long int

int

unsigned int

long int

unsigned long int

u or U

unsigned int

unsigned long int

unsigned int

unsigned long int

l or L

long int

unsigned long int

long int

unsigned long int

Both u or U, and l or L

unsigned long int

unsigned long int