4.2.3 C90でサポートするC99言語仕様

CC-RHでは,C90準拠時(-lang=c指定時)でも,一部のC99規格の仕様が有効です。

(1)

//によるコメント

//(スラッシュ2つ)より始まり改行までをコメントとします。改行の直前の文字が¥の場合,次の行も続いた1つのコメントとします。

(2)

ワイド文字列の結合

文字列定数とワイド文字列定数を結合した場合,ワイド文字列定数となります。

(3)

_Bool型

_Bool型をサポートします。

-lang=c99オプション指定時は,厳密な_Bool型として扱います。-lang=cオプション指定時は,一部の式でsigned char型として扱います。

(4)

long long int型

long long int型をサポートします。long long int型は8バイトの整数型です。

定数値の末尾LLもサポートします。ビット・フィールドの型にも指定可能です。

(5)

整数拡張

_Bool型とlong long型のサポートに伴って,整数拡張もC99 の仕様に従います。

(6)

既定の実引数拡張

_Bool 型とlong long 型のサポートに伴って,既定の実引数拡張もC99 の仕様に従います。

-

_Bool型はint型(4 バイト)に拡張して関数を呼び出します。

-

(unsigned) long long型は,8 バイトのまま関数を呼び出します。

(7)

enum定義の最後の列挙子の後のカンマ許可

enum型を定義する際,列挙子の列挙の最後の” , (カンマ)”を許可します。

enum EE {a, b, c,};

(8)

inlineキーワード(inline関数)

inlineキーワードをサポートします。

また,以下の書式によるpragma指令でも指定できます。

#pragma inline ( 関数名 [, 関数名]... )

外側のかっこは省略可能です。

 

なお,インライン展開についての詳細は「4.2.6.3 インライン展開」を参照してください。

-lang=c99オプション指定時は,C99のinlineキーワードとして扱います。それ以外の場合は,#pragma inline指令と同じ意味です。

(9)

整数定数の型

long long型の追加に伴い,整数定数の型が変わります。詳細は「4.1.3 データの内部表現と領域」の「(c) 整数定数」を参照してください。