4.1.2 C99の処理系定義

(1)

翻訳時の構文規則違反等に対する診断メッセージの出し方。(3.10,5.1.1.3)

10. メッセージ」を参照してください。

(2)

翻訳フェーズ3において,改行文字を除く空白類文字の並びを保持するか一つの空白文字に置き換えるか。(5.1.1.2)

そのまま保持されます。

(3)

翻訳フェーズ1での,物理的なソース・ファイルの多バイト文字と対応するソース文字集合のマッピング方法。(5.1.1.2)

多バイト文字は,コンパイル・オプションにより対応するソース文字集合にマッピングします。

(4)

フリースタンディング環境におけるプログラム開始時に呼び出される関数の名前と型。(5.1.2.1)

規定しません。スタート・アップの実装に依存します。

(5)

フリースタンディング環境におけるプログラム終了処理の効果。(5.1.2.1)

正常終了時はスタート・アップに依存します。プログラムを異常終了させる場合はabort関数を使用します。

(6)

main関数を定義できる代替方法。(5.1.2.2.1)

フリースタンディング環境であるため,規定しません。

(7)

main関数のargv実引数が指す文字列の値。(5.1.2.2.1)

フリースタンディング環境であるため,規定しません。

(8)

ユーザーインタフェースとなる対話型装置がどのようなものであるか。(5.1.2.3)

対話型装置の構成については,特に規定しません。

(9)

シグナル全体の集合,それぞれの意味および既定の操作。(7.14)

シグナル操作関数はサポートしていません。

(10)

SIGFPE,SIGILL,SIGSEGV以外の,計算例外に対応するシグナルの値。(7.14.1.1)

シグナル操作関数はサポートしていません。

(11)

プログラム開始時に実行される,signal(sig, SIG_IGN);と同等なシグナル。(7.14.1.1)

シグナル操作関数はサポートしていません。

(12)

getenv関数で使用される,環境の並びに定義されている名前の集合および環境の並びを変更する方法。(7.20.4.5)

getenv関数はサポートしていません。

(13)

system関数における,引数stringが指す文字列の実行方法。(7.20.4.6)

system関数はサポートしていません。

(14)

ソース基本文字集合の一部でない多バイト文字が識別子の中に現れることを許すかどうか,及び識別子に使用してよい多バイト文字およびその文字と国際文字名との対応。(6.4.2)

識別子として多バイト文字は使用できません。

(15)

識別子における,意味がある先頭の文字の個数。(5.2.4.1,6.4.2)

識別子すべてが意味のあるものとして扱います。また、識別子の長さは無制限です。

(16)

1バイトあたりのビット数。(3.6)

8ビットとします。

(17)

実行文字集合の要素の値。(5.2.1)

実行文字集合の要素の値は,ASCIIコード,EUC,SJIS,UTF-8,big5,gb2312の値です。

(18)

標準の英字逆斜線表記のそれぞれに割り当てられた実行文字集合の要素の一意な値。(5.2.2)

逆斜線表記

値(ASCII)

\a

0x07

\b

0x08

\f

0x0C

\n

0x0A

\r

0x0D

\t

0x09

\v

0x0B

(19)

実行基本文字集合の任意の要素以外の文字が格納されたchar型のオブジェクトの値。(6.2.5)

char型に型変換した値となります。

(20)

signed charとunsigned charのどちらが,単なるcharと同じ値の範囲,同じ表現形式,同じ動作を持つのか。(6.2.5,6.3.1.1)

char型は,signed char型と同じ値の範囲,同じ表現形式,同じ動作を持ちます。

(21)

文字定数と文字列リテラル中のソース文字集合の要素から実行文字集合の要素への対応付け方法。(6.4.4.4,5.1.1.2)

同一の値をもつ要素へ対応付けます。

(22)

2文字以上を含む,または1バイトの実行文字で表現できない文字もしくは逆斜線表記を含む単純文字定数の値。(6.4.4.4)

4文字までの文字を含む単純文字定数は,末尾の文字を下位バイト,先頭の文字を上位バイトに持つ4バイトの値を持ちます。5文字以上の文字を持つ文字定数はエラーとなります。基本的な実行環境文字集合で表現されない文字は,その値を持つ単純文字定数とみなします。不正な逆斜線表記は逆斜線を無視して次の文字を単純文字定数とみなします。

(23)

2文字以上の多バイト文字を含む,または実行拡張文字集合で表現できない多バイト文字もしくは逆斜線表記を含むワイド文字定数の値。(6.4.4.4)

多バイト文字としての左端1文字の値となります。

(24)

実行拡張文字集合の1つの文字に対応する単一の多バイト文字を含むワイド文字定数の値をワイド文字に対応させる,その時点のロケール。(6.4.4.4)

ロケールはサポートしていません。

(25)

ワイド文字列リテラルから対応するワイド文字コードへの変換時に使用される,その時点のロケール。(6.4.5)

ロケールはサポートしていません。

(26)

実行文字集合で表現できない多バイト文字もしくは逆斜線表記を含む文字列リテラルの値。(6.4.5)

逆斜線表記は対応するバイトの値,多バイト文字はそれぞれのバイトの値になります。

(27)

処理系が提供する拡張整数型。(6.2.5)

拡張整数型は提供していません。

(28)

符号付き整数型が符号と大きさ,2の補数,または1の補数を使用して表現されるかどうか,および異常値がトラップ表現か通常値かどうか。(6.2.6.2)

符号付き整数型は2の補数で表現します。トラップ表現はありません。

(29)

同じ精度を持つ別の拡張整数型に対する,整数拡張型の順位。(6.3.1.1)

拡張整数型は提供していません。

(30)

整数型の値を符号付き整数型に変換する際,値が変換先の型で表現できない場合の結果,あるいは生成されるシグナル。(6.3.1.3)

変換先の型の幅でマスクした(上位ビットを切り捨てた)ビット列とします。

(31)

符号付き整数に対するビット単位の操作の結果。(6.5)

シフト演算子の場合は算術シフトを行います。その他の演算子については,符号なしの値として(ビット・イメージのままで)計算するものとします。

(32)

浮動小数点演算の正確度,<math.h>および<complex.h>の中で定義される,浮動小数点型の結果を返却する,ライブラリ関数の正確度。(5.2.4.2.2)

不明です。

(33)

FLT_ROUNDSに対する非標準の値において,特徴付けられた丸め動作。(5.2.4.2.2)

FLT_ROUNDSに対する非標準の値は定義しません。

(34)

FLT_EVAL_METHODに対する非標準の負の値によって特徴付けられる評価形式。(5.2.4.2.2)

FLT_EVAL_METHODに対する非標準の値は定義しません。

(35)

整数が,元の値を正確に表現できない浮動小数点数に変換された時の丸めの方向。(6.3.1.4)

オプション-Xroundの指定,およびマイコンの設定に従います。

(36)

浮動小数点数がより狭い浮動小数点数型に変換された時の丸めの方向。(6.3.1.5)

オプション-Xroundの指定,およびマイコンの設定に従います。

(37)

浮動小数点定数を,最も近い表現可能な値とするか,それとも最も近い表現可能な値のすぐ隣(大きい値もしくは小さい値)で表現可能な値とするか。(6.4.4.2)

オプション-Xroundの指定に従います。

(38)

FP_CONTRACTプラグマがない場合,式が短縮されるかどうか。短縮されるならどのように短縮されるか。(6.5)

式の短縮は,各オプション指定に依存します。

FP_CONTRACTプラグマは機能しません。

#pragma STDC FP_CONTRACT指定をしても無視します。

(39)

FENV_ACCESSプラグマの既定の状態。(7.6.1)

FENV_ACCESSプラグマの既定の状態はONになります。

ただし,#pragma STDC FENV_ACCESS指定しても無視します。

(40)

付加的な浮動小数点例外,丸めモード,環境,分類,およびそれらのマクロ名。(7.6,7.12)

コンパイラが提供しているライブラリmath.hに準じます。付加的な定義はありません。

(41)

FP_CONTRACTプラグマの既定の状態。(7.12.2)

FP_CONTRACTプラグマの既定の状態はONになります。

(42)

IEC 60559に準拠した処理系で,丸めの結果が実際に数学的な結果と同等である時に,"不正確結果"浮動小数点例外が生成されうるかどうか。(F.9)

浮動小数点例外をサポートしていません。

"不正確結果"浮動小数点例外は生成されません。

(43)

IEC 60559に準拠した処理系で,結果が極めて小さいが不正確ではない時に,"アンダーフロー"浮動小数点例外や"不正確結果"浮動小数点例外が生成されうるかどうか。(F.9)

浮動小数点例外をサポートしていません。"アンダーフロー"浮動小数点例外や"不正確結果"浮動小数点例外は生成されません。

(44)

ポインタから整数への変換の結果,またはその逆の結果。(6.3.2.3)

整数からポインタへの変換結果

整数型のサイズがポインタ型のサイズより大きい場合は,整数型の下位バイトの値になります。整数型のサイズとポインタ型のサイズが等しい場合は,整数型のビットパターンがそのまま保持されます。整数型のサイズがポインタ型のサイズより小さい場合は,int型に拡張した結果の値をそのまま保持します。

 

ポインタから整数への変換結果

ポインタ型のサイズが整数型のサイズより大きい場合は,ポインタ型の下位バイトの値になります。ポインタ型のサイズと整数型のサイズが等しい場合は,ポインタ型のビットパターンがそのまま保持されます。ポインタ型のサイズが整数型のサイズより小さい場合は,ポインタ型の値をゼロ拡張した値になります。

(45)

同じ配列の要素への2つのポインタの減算の結果の大きさ。(6.5.6)

結果の型はsigned int型となります。

(46)

register記憶域クラス指定子の使用がどのくらい効果を持つか。(6.7.1)

register指定子を無視して最適化します。

(47)

inline関数指定子の使用がどのくらい効果を持つか。(6.7.4)

常に展開を試みます。ただし,条件によっては展開を行わないことがあります。

(48)

単なるintビットフィールドがsigned intビットフィールドとして扱われるか,それともunsigned intビットフィールドとして扱われるか。(6.7.2,6.7.2.1)

signed int型として扱います。ビットフィールドの最上位ビットは符号ビットとして扱います。

(49)

_Bool,signed int,unsigned int以外で許されるビットフィールドの型。(6.7.2.1)

全ての整数型が許されています。

(50)

ビットフィールドが記憶域単位の境界を跨ぐかどうか。(6.7.2.1)

構造体パッキング未指定時は,ビットフィールドは境界を跨がず,次の領域に割り付けます。構造体パッキング指定時は,ビットフィールドは境界を跨ぐことがあります。

(51)

記憶域単位内のビットフィールド割付けの順序。(6.7.2.1)

下位から割り付けます。オプション-Xbit_orderまたは#pragma bit_orderで選択が可能です。

(52)

構造体または共用体オブジェクトのビットフィールド以外の各メンバの境界の調整方法。(6.7.2.1)

4.1.3 データの内部表現と領域」を参照してください。

(53)

それぞれの列挙型が適合する整数型。(6.7.2.2)

signed int型です。ただし,オプション-Xenum_type=auto指定時は,列挙値が収まる最小の型となります。

(54)

volatile修飾型のオブジェクトへのアクセスをどのように構成するか。(6.7.3)

アクセス幅,アクセス順序,アクセス回数はCソース上の記述通りに実施しますが,対応するマイコンの命令がない型へのアクセスは,その限りではありません。

(55)

#includeのヘッダ名の2つの形式中の文字列が,ヘッダまたは外部ソース・ファイルの名前に対応付けられる方法。(6.4.7)

#includeヘッダに記述された文字列は,ソース文字集合として指定した文字コードとして解釈され,ヘッダ名または外部ソース・ファイル名に対応付けられます。

(56)

条件付き取り込みを制御する定数式中の文字定数の値が実行文字集合の同じ文字定数の値と一致するかどうか。(6.10.1)

条件付き取り込みで指定される文字定数に対する値と,その他の式中に現れる文字定数の値とは等しくなります。

(57)

条件付き取り込みを制御する定数式中の単一文字から成る文字定数が負の値を持ってもよいかどうか。(6.10.1)

負の値を持つことがあります。

(58)

#include指令で<と>で囲まれたヘッダが探索される場所,場所の指定方法,及びヘッダの識別方法。(6.10.2)

次の順序で探索し,フォルダにある同名ファイルをヘッダと識別します。

1. フルパス指定の場合はそのパスが示すフォルダ

2. -Iオプションで指定されたフォルダ

3. 標準インクルードファイルフォルダ(コンパイラが置かれたbinフォルダからの相対パスでの..\incフォルダ)

(59)

#include指令で,2つの"で囲まれたソース・ファイルの探索手順。(6.10.2)

次の順序で探索します。

1. フルパス指定の場合はそのパスが示すフォルダ

2. ソース・ファイルがあるフォルダ

3. -Iオプションで指定されたフォルダ

4. 標準インクルードファイルフォルダ(コンパイラが置かれたbinフォルダからの相対パスでの..\incフォルダ)

(60)

#include指令の前処理トークン(マクロ展開の可能性がある)をヘッダ名に結合する方法。(6.10.2)

前処理字句列が単一で< 文字列>,または" 文字列" の形式に置換されるマクロである場合にのみ,単一のヘッダまたはソース・ファイル名の前処理字句として扱われます。

(61)

#include指令の入れ子の限界。(6.10.2)

制限はありません。

(62)

#演算子が,文字定数や文字列リテラル中の国際文字名の最初の\文字の前に\文字を挿入するかどうか。(6.10.3.2)

最初の\文字の前に\文字は挿入しません。

(63)

非STDCのプラグマ指令の動作。(6.10.6)

4.2.6 拡張言語仕様の使用方法」を参照してください。

(64)

翻訳の日付や時刻が得られない場合,__DATE__マクロと__TIME__マクロで得られる日付や時刻。(6.10.8)

日付や時刻が得られない場合はありません。

(65)

ISO/IEC 9899:1999の4章で要求される最低限必要なライブラリ機能以外で,フリースタンディング環境でプログラムが利用できるライブラリ機能。(5.1.2.1)

7. ライブラリ関数仕様」を参照してください。

(66)

assertマクロによって標準エラーストリームに書き込まれる診断機能の書式。(7.2.1.1)

以下の通りです。

Assertion failed:式,function関数名,fileファイル名,line行番号

(67)

fegetexceptflag関数によって格納される浮動小数点状態フラグの表現。(7.6.2.2)

fegetexceptflag関数はサポートしていません。

(68)

feraiseexcept関数が,"オーバーフロー"浮動小数点例外または"アンダーフロー"浮動小数点例外を生成する場合はいつでも,それに加えて"不正確結果"浮動小数点例外を生成するかどうか。(7.6.2.3)

feraiseexcept関数はサポートしていません。

(69)

setlocale関数に第2引数として渡される文字列で"C"や""以外の文字列。(7.11.1.1)

setlocale関数はサポートしていません。

(70)

FLT_EVAL_METHODマクロの値が0未満または2より大きい場合のfloat_tとdouble_tで定義される型。(7.12)

float_tはfloat型,double_tはdouble型になります。

(71)

数学関数における,この国際標準(C99)によって要求される以外の定義域エラー。(7.12.1)

atan2,cos,sin,tan,frexp,pow,lround,llround,fmod関数群は定義域エラーとなる場合があります。

(72)

定義域エラー発生時の数学関数の返却値。(7.12.1)

7.4.10 数学関数」を参照してください。

(73)

浮動小数点演算の結果がアンダーフローした場合の数学関数の返却値。アンダーフロー時,整数式math_errhandling & MATH_ERRNOが0以外の値の場合,整数式errnoの値がERANGEとなるかどうか。アンダーフロー時,整数式math_errhandling & MATH_ERREXCEPTが0以外の値の場合,"アンダーフロー"浮動小数点例外を生成するかどうか。(7.12.1)

返却値は0です。ただし,exp,ldexp関数群は0または非正規化数を返却します。アンダーフロー発生時はerrnoにERANGEを設定します。アンダーフロー浮動小数点例外は生成しません。

(74)

fmod関数群の第2実引数が0の場合に,定義域エラーが発生するか,あるいは0が返されるかどうか。(7.12.10.1)

定義域エラーが発生します。詳細はfmod関数群の説明を参照してください。

(75)

remquo関数群によって商を縮小する際に使用される法の,2を底とする対数の値。(7.12.10.3)

remquo関数群はサポートしていません。

(76)

シグナル発生時,signal(sig, SIG_DFL);と同等のことが実行されるか,あるいは,その時点のシグナル処理ルーチンが完了するまで,シグナルの処理系定義の組に対してそれらの発生を遮るか。(7.14.1.1)

シグナル操作関数はサポートしていません。

(77)

マクロNULL展開後の空ポインタ定数。(7.17)

(void*)0 とします。

(78)

テキストストリームの最終行が終端を示す改行文字を必要とするかどうか。(7.19.2)

改行文字を必要としません。

(79)

テキストストリームにおいて,改行文字の直前に書き込まれた空白文字の並びが,データが読み取られる時に現れるかどうか。(7.19.2)

データが読み取られる時に現れます。

(80)

バイナリストリームの最後に付加されるNULL文字の数。(7.19.2)

0個です。

(81)

追加モードでオープンされたファイルに対し,最初にファイル位置指定子がファイルの始めに位置付けられるか終わりに位置付けられるか。(7.19.3)

ファイル操作関数はサポートしていません。

(82)

テキストストリームへの書込みが,結び付けられたファイルを最終書込み点の直後で切り捨てるかどうか。(7.19.3)

ファイル操作関数はサポートしていません。

(83)

ファイルバッファリングの特性。(7.19.3)

ファイル操作関数はサポートしていません。

(84)

長さ0のファイルが実際に存在するかどうか。(7.19.3)

ファイル操作関数はサポートしていません。

(85)

正しいファイル名の規則。(7.19.3)

ファイル操作関数はサポートしていません。

(86)

同一のファイルを同時に複数回オープンできるかどうか。(7.19.3)

ファイル操作関数はサポートしていません。

(87)

ファイル内の多バイト文字のために使用される表現形式の特性と選択。(7.19.3)

ファイル操作関数はサポートしていません。

(88)

オープンされているファイルに対するremove関数の効果。(7.19.4.1)

ファイル操作関数はサポートしていません。

(89)

rename関数を呼び出す前に,第2引数で指定された新しいファイル名のファイルが既に存在していた場合のrename関数の動作。(7.19.4.2)

ファイル操作関数はサポートしていません。

(90)

プログラムが異常終了した場合,オープン中の一時ファイルが削除されるかどうか。(7.19.4.3)

ファイル操作関数はサポートしていません。

(91)

filename引数が空ポインタの場合,どのようなモード変更を許すか,及びどのような状況での変更を許すか。(7.19.5.4)

ファイル操作関数はサポートしていません。

(92)

無限大やNaNを書き込む時の形式,及びNaNの書込みで使われるかもしれないn文字列,nワイド文字列の意味。(7.19.6.1,7.24.2.1)

正の無限大は(+INF),負の無限大は(-INF),非数は(NaN)を出力します。

NaNの書き込みにおけるn文字列,nワイド文字列はサポートしていません。

(93)

fprintf関数およびfwprintf関数での%p変換の出力。(7.19.6.1,7.24.2.1)

10進表記です。

fwprintf関数はサポートしていません。

(94)

fscanf関数およびfwscanf関数の%[変換において,文字-が走査文字の並びに含まれ,かつ先頭の文字(先頭が文字^のときは2文字目)でも最後の文字でもない場合の文字-の解釈。(7.19.6.2,7.24.2.1)

7.4.7 標準入出力関数」にある「sscanf」を参照してください。

(95)

fscanf関数およびfwscanf関数での%p変換によって一致する文字の並びの集合と対応する入力項目の解釈。(7.19.6.2,7.24.2.2)

10進整数です。

fwscanf関数はサポートしていません。

(96)

fgetpos関数,fsetpos関数,ftell関数の失敗時に設定されるerrnoマクロの値。(7.19.9.1,7.19.9.3,7.19.9.4)

ファイル操作関数はサポートしていません。

(97)

strtod関数,strtof関数,strtold関数,wcstod関数,wcstof関数,wcstold関数によって変換されたNaNを表現する文字列でのn文字あるいはnワイド文字の並びの意味。(7.20.1.3,7.24.4.1.1)

strtod関数,strtodf関数は浮動小数点型の数値以外と解釈します。

strtof関数,strtold関数,wcstod関数,wcstof関数,wcstold関数はサポートしていません。

(98)

strtod関数,strtof関数,strtold関数,wcstod関数,wcstof関数,wcstold関数が,アンダーフロー発生時にerrnoにERANGE格納するかどうか。(7.20.1.3,7.24.4.1.1)

strtod関数,strtodf関数はグローバル変数errnoにERANGEをセットします。

strtof関数,strtold関数,wcstod関数,wcstof関数,wcstold関数はサポートしていません。

(99)

calloc関数,malloc関数,realloc関数が,要求された領域の大きさが0である時に,割り付けたオブジェクトへのポインタを返すか,それとも空ポインタを返すか。(7.20.3)

calloc関数,malloc関数は要求された大きさを8とみなし,確保したポインタを返します。realloc関数はNULLを返します。

(100)

abort関数,_Exit関数の呼び出し時に,書き出されていないバッファリングされたデータをもつオープンしているストリームをフラッシュするかどうか,オープンしているストリームをクローズするかどうか,一時ファイルを削除するかどうか。(7.20.4.1,7.20.4.4)

ファイル操作関数はサポートしていません。

(101)

abort関数,exit関数,_Exit関数によってホスト環境へ返される終了状態。(7.20.4.1,7.20.4.3,7.20.4.4)

フリースタンディング環境であるため,規定しません。

(102)

system関数に渡された実引数が空ポインタでない場合に,system関数によって返される値。(7.20.4.6)

system関数はサポートしていません。

(103)

地方時と夏時間。(7.23.1)

time.hはサポートしていません。

(104)

clock_tとtime_tで表現可能な時刻の範囲と精度。(7.23)

time.hはサポートしていません。

(105)

clock関数で計算されるプロセッサ時間の開始時点。(7.23.2.1)

time.hはサポートしていません。

(106)

"C"ロケールでの,strftime関数,wcsftime関数の%Z変換指定子に対応する置換文字列。(7.23.3.5,7.24.5.1)

time.hはサポートしていません。

(107)

IEC 60559準拠の処理系で,三角関数,双曲線関数,底がeの指数関数,底がeの対数関数,エラー関数,ログガンマ関数が,"不正確結果"浮動小数点例外を生成するかどうか。生成する場合,いつ生成するか。(F.9)

"不正確結果"浮動小数点例外を生成しません。

(108)

IEC 60559準拠の処理系で,<math.h>の関数が丸め方向モードを尊重するか。(F.9)

リンクするライブラリに依存します。

fesetround関数はサポートしていません。

(109)

<float.h>,<limits.h>,<stdint.h>の各ヘッダで指定されたマクロに割り当てられる値あるいは式。(5.2.4.2,7.18.2,7.18.3)

float.h

名前

意味

FLT_ROUNDS

1(-Xround=nearest指定時)

0(-Xround=zero指定時)

浮動小数点加算に対する丸めのモード

1(最も近い方向へ丸める)とする。

0(ゼロ方向へ丸める)とする。

FLT_RADIX

+2

指数表現の基数(b)

FLT_MANT_DIG

+24

浮動小数点仮数部におけるFLT_RADIXを底とする数字の数(p)

DBL_MANT_DIG

+53

LDBL_MANT_DIG

+53

FLT_DIG

+6

q桁の10進数の浮動小数点数を基数bのp桁をもつ浮動小数点数に丸めることができ,再び変更なしにq桁の10進数値に戻すことが可能な10進数の桁数(q)

DBL_DIG

+15

LDBL_DIG

+15

FLT_MIN_EXP

-125

FLT_RADIXをその値から1引いた値でべき乗したとき,正規化された浮動小数点数となるような最小の負の整数

(emin

DBL_MIN_EXP

-1021

LDBL_MIN_EXP

-1021

FLT_MIN_10_EXP

-37

10をその値でべき乗したとき,正規化された浮動小数点数の範囲内になるような最小の負の整数

log10bemin-1

DBL_MIN_10_EXP

-307

LDBL_MIN_10_EXP

-307

FLT_MAX_EXP

+128

FLT_RADIXをその値から1引いた値でべき乗したとき,表現可能な有限浮動小数点数となるような最大の整数

(emax

DBL_MAX_EXP

+1024

LDBL_MAX_EXP

+1024

FLT_MAX_10_EXP

+38

10をその値でべき乗したとき,表現可能な有限浮動小数点数の範囲内になるような最大の整数

log10 ((1 - b-p) * bemax)

DBL_MAX_10_EXP

+308

LDBL_MAX_10_EXP

+308

FLT_MAX

3.40282347E + 38F

表現可能な有限浮動小数点数の最大値

(1 - b-p)*bemax

DBL_MAX

1.7976931348623158E+308

LDBL_MAX

1.7976931348623158E+308

FLT_EPSILON

1.19209290E - 07F

指定された浮動小数点型で表現できる1.0と,1.0より大きい最も小さい値との差異

b1 - p

DBL_EPSILON

2.2204460492503131E-016

LDBL_EPSILON

2.2204460492503131E-016

FLT_MIN

1.17549435E - 38F

正規化された正の浮動小数点数の最小値

bemin - 1

DBL_MIN

2.2250738585072014E-308

LDBL_MIN

2.2250738585072014E-308

 

half.h

名前

意味

HALF_MANT_DIG

+11

浮動小数点仮数部におけるFLT_RADIXを底とする数字の数(p)

HALF_DIG

+2

q桁の10進数の浮動小数点数を基数bのp桁をもつ浮動小数点数に丸めることができ,再び変更なしにq桁の10進数値に戻すことが可能な10進数の桁数(q)

HALF_MIN_EXP

-13

FLT_RADIXをその値から1引いた値でべき乗したとき,正規化された浮動小数点数となるような最小の負の整数

(emin

HALF_MIN_10_EXP

-4

10をその値でべき乗したとき,正規化された浮動小数点数の範囲内になるような最小の負の整数

log10bemin-1

HALF_MAX_EXP

+16

FLT_RADIXをその値から1引いた値でべき乗したとき,表現可能な有限浮動小数点数となるような最大の整数

(emax

HALF_MAX_10_EXP

+4

10をその値でべき乗したとき,表現可能な有限浮動小数点数の範囲内になるような最大の整数

log10 ((1 - b-p) * bemax)

HALF_MAX

65504.0F

表現可能な有限浮動小数点数の最大値

(1 - b-p)*bemax

HALF_EPSILON

0.00097656F

指定された浮動小数点型で表現できる1.0と,1.0より大きい最も小さい値との差異

b1 - p

HALF_MIN

6.10352E-05F

正規化された正の浮動小数点数の最小値

bemin - 1

 

limits.h

名前

意味

CHAR_BIT

+8

ビット・フィールドではない最小のオブジェクトのビット数(= 1バイト)

SCHAR_MIN

-128

signed char型の最小値

SCHAR_MAX

+127

signed char型の最大値

UCHAR_MAX

+255

unsigned char型の最大値

CHAR_MIN

-128

char型の最小値

CHAR_MAX

+127

char型の最大値

SHRT_MIN

-32768

short int型の最小値

SHRT_MAX

+32767

short int型の最大値

USHRT_MAX

+65535

unsigned short int型の最大値

INT_MIN

-2147483648

int型の最小値

INT_MAX

+2147483647

int型の最大値

UINT_MAX

+4294967295

unsigned int型の最大値

LONG_MIN

-2147483648

long int型の最小値

LONG_MAX

+2147483647

long int型の最大値

ULONG_MAX

+4294967295

unsigned long int型の最大値

LLONG_MIN

-9223372036854775808

long long int型の最小値

LLONG_MAX

+9223372036854775807

long long int型の最大値

ULLONG_MAX

+18446744073709551615

unsigned long long int型の最大値

 

stdint.h

名前

意味

INT8_MIN

-0x7f-1

int8_t型の最小値

INT16_MIN

-0x7fff-1

int16_t型の最小値

INT32_MIN

-0x7fffffff-1

int32_t型の最小値

INT64_MIN

-0x7fffffffffffffffLL-1

int64_t型の最小値

INT8_MAX

0x7f

int8_t型の最大値

INT16_MAX

0x7fff

int16_t型の最大値

INT32_MAX

0x7fffffff

int32_t型の最大値

INT64_MAX

0x7fffffffffffffffLL

int64_t型の最大値

UINT8_MAX

0xff

uint8_t型の最大値

UINT16_MAX

0xffff

uint16_t型の最大値

UINT32_MAX

0xffffffff

uint32_t型の最大値

UINT64_MAX

0xffffffffffffffffULL

uint64_t型の最大値

INT_LEAST8_MIN

-0x7f-1

int_least8_t型の最小値

INT_LEAST16_MIN

-0x7fff-1

int_least16_t型の最小値

INT_LEAST32_MIN

-0x7fffffff-1

int_least32_t型の最小値

INT_LEAST64_MIN

-0x7fffffffffffffffLL-1

int_least64_t型の最小値

INT_LEAST8_MAX

0x7f

int_least8_t型の最大値

INT_LEAST16_MAX

0x7fff

int_least16_t型の最大値

INT_LEAST32_MAX

0x7fffffff

int_least32_t型の最大値

INT_LEAST64_MAX

0x7fffffffffffffffLL

int_least64_t型の最大値

UINT_LEAST8_MAX

0xff

uint_least8_t型の最大値

UINT_LEAST16_MAX

0xffff

uint_least16_t型の最大値

UINT_LEAST32_MAX

0xffffffffU

uint_least32_t型の最大値

UINT_LEAST64_MAX

0xffffffffffffffffULL

uint_least64_t型の最大値

INT_FAST8_MIN

-0x7fffffff-1

int_fast8_t型の最小値

INT_FAST16_MIN

-0x7fffffff-1

int_fast16_t型の最小値

INT_FAST32_MIN

-0x7fffffff-1

int_fast32_t型の最小値

INT_FAST64_MIN

-0x7fffffffffffffffLL-1

int_fast64_t型の最小値

INT_FAST8_MAX

0x7fffffff

int_fast8_t型の最大値

INT_FAST16_MAX

0x7fffffff

int_fast16_t型の最大値

INT_FAST32_MAX

0x7fffffff

int_fast32_t型の最大値

INT_FAST64_MAX

0x7fffffffffffffffLL

int_fast64_t型の最大値

UINT_FAST8_MAX

0xffffffffU

uint_fast8_t型の最大値

UINT_FAST16_MAX

0xffffffffU

uint_fast16_t型の最大値

UINT_FAST32_MAX

0xffffffffU

uint_fast32_t型の最大値

UINT_FAST64_MAX

0xffffffffffffffffULL

uint_fast64_t型の最大値

INTPTR_MIN

-0x7fffffff-1

intptr_t型の最小値

INTPTR_MAX

0x7fffffff

intptr_t型の最大値

UINTPTR_MAX

0xffffffffU

uintptr_t型の最大値

INTMAX_MIN

-0x7fffffffffffffffLL-1

intmax_t型の最小値

INTMAX_MAX

0x7fffffffffffffffLL

intmax_t型の最大値

UINTMAX_MAX

0xffffffffffffffffULL

uintmax_t型の最大値

PTRDIFF_MIN

-0x7fffffff-1

ptrdiff_t型の最小値

PTRDIFF_MAX

0x7fffffff

ptrdiff_t型の最大値

SIZE_MAX

0xffffffffU

size_t型の最大値

(110)

明示的に規定されていない場合の,オブジェクトを構成するバイトの並びのバイト数,バイトの順序,表現方法。(6.2.6.1)

4.1.3 データの内部表現と領域」を参照してください。

(111)

sizeof演算子の結果の値。(6.5.3.4)

4.1.3 データの内部表現と領域」を参照してください。

 

翻訳限界

C99規格の翻訳限界に対するCC-RHの仕様を示します。

「制限なし」となっている項目は,コンパイル環境の状態に依存します。

項目

限界値

ブロックの入れ子のレベル数

制限なし

条件付き取込みにおける入れ子のレベル数

制限なし

一つの宣言中の一つの算術型,構造体型,共用体型又は不完全型を修飾するポインタ,配列及び関数宣言子(の任意の組合せ)の個数

128

一つの完結宣言子における括弧で囲まれた宣言子の入れ子のレベル数

制限なし

一つの完結式における括弧で囲まれた式の入れ子のレベル数

制限なし

内部識別子又はマクロ名において意味がある先頭の文字数

制限なし

外部識別子において意味がある先頭の文字数

制限なし

一つの翻訳単位中における外部識別子数

制限なし

一つのブロックで宣言されるブロック有効範囲をもつ識別子数

制限なし

一つの前処理翻訳単位中で同時に定義されるマクロ識別子数

制限なし

一つの関数定義における仮引数の個数

制限なし

一つの関数呼出しにおける実引数の個数

制限なし

一つのマクロ定義における仮引数の個数

制限なし

一つのマクロ呼出しにおける実引数の個数

制限なし

一つの論理ソース行における文字数

制限なし

(連結後の)単純文字列リテラル又はワイド文字列リテラル中における文字数

制限なし

(ホスト環境の場合)一つのオブジェクトのバイト数

2147483647

#includeで取り込まれるファイルの入れ子のレベル数

制限なし

一つのswitch文(入れ子になったswitch文を除く)中におけるcaseラベルの個数

2147483647

一つの構造体又は共用体のメンバ数

制限なし

一つの列挙体における列挙定数の個数

制限なし

一つのメンバ宣言並びにおける構造体又は共用体定義の入れ子のレベル数

制限なし