この項では,CC-RHがサポートするC99言語機能について説明します。
//(スラッシュ2つ)より始まり改行までをコメントとします。改行の直前の文字が¥の場合,次の行も続いた1つのコメントとします。
文字列定数とワイド文字列定数を結合した場合,ワイド文字列定数となります。
_Bool型をサポートします。
注 | -lang=c99オプション指定時は,厳密な_Bool型として扱います。-lang=cオプション指定時は,一部の式でsigned char型として扱います。 |
long long int型をサポートします。long long int型は8バイトの整数型です。
定数値の末尾LLもサポートします。ビット・フィールドの型にも指定可能です。
_Bool型とlong long型のサポートに伴って,整数拡張もC99 の仕様に従います。
_Bool 型とlong long 型のサポートに伴って,既定の実引数拡張もC99 の仕様に従います。
- | _Bool型はint型(4 バイト)に拡張して関数を呼び出します。 |
- | (unsigned) long long型は,8 バイトのまま関数を呼び出します。 |
enum型を定義する際,列挙子の列挙の最後の” , (カンマ)”を許可します。
inlineキーワードをサポートします。
また,以下の書式によるpragma指令でも指定できます。
#pragma inline ( 関数名 [, 関数名]... )注
|
なお,インライン展開についての詳細は「4.2.4.3 インライン展開」を参照してください。
-lang=c99オプション指定時は,C99のinlineキーワードとして扱います。それ以外の場合は,#pragma inline指令と同じ意味です。
long long型の追加に伴って,整数定数の型は次のとおりになります。
整数定数の型は,次の並びのうちでその値を表現できる最初の型となります。
表 4.7 | 整数定数の型(long long型が有効な場合(-strict_std指定なし)) |
|
|
|
なし
|
int
long int
unsigned long int注
long long int
unsigned long long int
|
int
unsigned int
long int
unsigned long int
long long int
unsigned long long int
|
u,またはU
|
unsigned int
unsigned long int
unsigned long long int
|
unsigned int
unsigned long int
unsigned long long int
|
l,またはL
|
long int
unsigned long int注
long long int
unsigned long long int
|
long int
unsigned long int
long long int
unsigned long long int
|
u,またはU,およびl ,またはL の両方
|
unsigned long int
unsigned long long int
|
unsigned long int
unsigned long long int
|
ll,またはLL
|
long long int
unsigned long long int
|
long long int
unsigned long long int
|
u,またはU,およびll ,またはLLの両方
|
unsigned long long int
|
unsigned long long int
|
表 4.8 | 整数定数の型(long long型が無効な場合(-strict_std指定あり)) |
|
|
|
なし
|
int
long int
unsigned long int
|
int
unsigned int
long int
unsigned long int
|
u,またはU
|
unsigned int
unsigned long int
|
unsigned int
unsigned long int
|
l,またはL
|
long int
unsigned long int
|
long int
unsigned long int
|
u,またはU,およびl ,またはL の両方
|
unsigned long int
|
unsigned long int
|