Everything
4.1.4 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)

正常終了時はスタート・アップに依存します。プログラムを異常終了させる場合は終了処理ルーチンを作成してください。

(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型は、unsigned char型と同じ値の範囲、同じ表現形式、同じ動作を持ちます。ただし、オプション
-signed_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)

下記いずれかの条件を満たす場合は最も近い方向に丸められます。

-nofpuを指定

-cpu=rx200を指定

-cpu=rx600または-isa=rxv1を指定し、かつ変換対象の整数が符号なし

それ以外の場合はFPSWのRM[0:1]ビットに従います。

【V3.01.00 以降】-dpfpuを指定した場合、倍精度浮動小数点型への変換結果はDPSWのDRM[0:1]ビットに従います。

(36)

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

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

(37)

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

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

(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、fenv.h に準じます。付加的な定義はありません。

(41)

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

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

(42)

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

nearbyint関数、nearbyintf関数、nearbyintl関数は"不正確結果"浮動小数点例外を生成しません。rint関数、rintf関数、rintl関数は"不正確結果"浮動小数点例外を生成する場合があります。

(43)

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

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

(44)

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

-

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

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

-

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

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

(45)

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

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

(46)

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

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

(47)

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

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

(48)

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

unsigned int型として扱います。ただし、オプション-signed_bitfieldにより変更可能です。

(49)

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

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

(50)

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

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

(51)

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

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

(52)

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

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

(53)

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

signed long型です。ただし、オプション-auto_enum指定時は、列挙値が収まる最小の型となります。

(54)

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

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

(55)

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

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

(56)

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

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

(57)

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

単なるchar型(signedもunsignedもつかないchar)がunsignedの場合は、負の値を持ちません。signedの場合は、負の値を持つことがあります。

(58)

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

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

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

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

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

(59)

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

次の順序で探索します。

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

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

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

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.3 #pragma指令」を参照してください。

(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: FILE ファイル名,LINE 行番号 FUNCNAME 関数名

(67)

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

下記のいずれか、または組み合わせになります。

_FE_DIVBYZERO 0x04

_FE_INEXACT 0x10

_FE_INVALID 0x01

_FE_OVERFLOW 0x02

_FE_UNDERFLOW 0x08

(68)

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

"オーバーフロー"浮動小数点例外生成時にFPUのE0フラグが0の場合、"不正確結果"浮動小数点例外を生成する可能性があります。それ以外では"不正確結果"浮動小数点例外を生成しません。

(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)

(72)を参照してください。

(72)

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

acosh関数群

引数をxとします。x<1が成り立つとき、定義域エラーとなります。このときの戻り値はNaNです。

atanh 関数群

引数をxとします。-1<x<1が成り立つとき、定義域エラーとなります。このときの戻り値はNaNです。

ccosh関数群

引数をxとします。

・xの実部が0であり, かつxの虚部が±∞であるとき、定義域エラーとなります。このときの戻り値はNaN+0×iです。

・xの実部が±∞であり、かつxの虚部が±∞であるとき、定義域エラーとなります。このときの戻り値は∞+NaN×iです。

・xの実部が有限値であり、かつxの虚部が±∞であるとき, 定義域エラーとなります。このときの戻り値はNaN+NaN×iです。

cexp関数群

引数をxとします。

・xの実部が+∞であり、かつxの虚部が±∞であるとき、定義域エラーとなります。このときの戻り値は+∞+NaN×iです。

・xの実部が有限値であり、かつxの虚部が±∞であるとき、定義域エラーとなります。このときの戻り値はNaN+NaN×iです。

csinh関数群

引数をxとします。

・xの実部が0 であるか、または ±∞ であり、かつxの虚部が±∞であるとき、定義域エラーとなります。このときの戻り値はxの実部+NaN×iです。

・xの実部有限値であり、かつxの虚部が±∞であるとき、定義域エラーとなります。このときの戻り値はNaN+NaN×iです。

fma関数群

第1引数をx1, 第2引数をx2, 第3引数をx3とします。

・x1が±∞かつx2が0かつx3がNaN以外であるとき、定義域エラーとなります。このときの戻り値はNaNです。

・x1が0かつx2が±∞かつx3がNaN以外であるとき、定義域エラーとなります(規定なし)。このときの戻り値はNaNです。

・x1, x2及びx3がいずれも±∞であり、かつx1×x2とx3の符号が異なる(すなわち、∞同士の減算が生じる)とき、定義域エラーとなります。このときの戻り値はNaNです。

llrint関数群

引数をxとします。

・xが有限値であり、かつlonglong型で表せない値であるとき、定義域エラーとなります。このときの戻り値は0です。

・xがNaNであるか、または±∞であるとき、定義域エラーとなります。このときの戻り値は0です。

llround関数群

引数をxとします。

・xが有限値であり、かつlonglong型で表せない値であるとき、定義域エラーとなります。このときの戻り値は0です。

・xがNaNであるか、または±∞であるとき、定義域エラーとなります。このときの戻り値は0です。

log1p関数群

引数をxとします。xがx<-1を満たすとき、定義域エラーとなります。このときの戻り値は NaN です。

lrint関数群

引数をxとします。

・xが有限値であり、かつlong型で表せない値であるとき、定義域エラーとなります。このときの戻り値は0です。

・xがNaNであるか、または±∞であるとき、定義域エラーとなります。このときの戻り値は0です。

lround関数群

引数をxとします。

・xが有限値であり、かつlong型で表せない値であるとき、定義域エラーとなります。このときの戻り値は0です。

・xがNaNであるか、または±∞であるとき、定義域エラーとなります。このときの戻り値は0です。

remquo関数群

第1引数をx1, 第2引数をx2, 第3引数をx3とします。

・x1が±∞であり、かつx2がNaNではないとき、定義域エラーとなります。このときの戻り値はNaNです。なお、x3の指し先は0になります。

・x1がNaNではなく、かつx2が0であるとき、定義域エラーとなります。このときの戻り値はNaNです。なお、x3の指し先は0になります。

tgamma関数群

引数をxとします。xが-∞であるか、または負の整数であるとき、定義域エラーとなります。このときの戻り値はNaNです。

carg関数群

引数をxとします。xの実部が0であり、かつxの虚部が0であるとき、定義域エラーとなります。このときの戻り値はNaNです。

ccos関数群

引数をxとします。

・xの実部が±∞であり、かつxの虚部が0であるとき、定義域エラーとなります。このときの戻り値はNaN+0×iです。

・xの実部が±∞であり、かつxの虚部が±∞であるとき、定義域エラーとなります。このときの戻り値は∞+NaN×iです。

・xの実部が±∞であり、かつxの虚部が有限値であるとき、定義域エラーとなります。このときの戻り値はNaN+NaN×iです。

clog関数群

引数をxとします。xの実部が±∞であり、かつxの虚部が±∞であるとき、定義域エラーとなります。このときの戻り値は±∞+ NaN×iです。

cpow関数群

第1引数をx1, 第2引数をx2とします。

・x1の虚部が0であり、かつx2をx1の実部倍した結果の実部が+∞であり、かつ虚部が±∞であるとき、定義域エラーとなります。このときの戻り値は+∞+NaN×iです。

・x1の虚部が0であり、かつx2をx1の実部倍した結果の実部が有限値であり、虚部が±∞であるとき、定義域エラーとなります。このときの戻り値はNaN+NaN×iです。

・x1またはx2の実部がNaNであり、かつx1及びx2の虚部がいずれも0であるとき、定義域エラーとなります。このときの戻り値はNaN+0×iです。

・x1の実部が0であり、かつx2の実部が0以下であり、かつx1及びx2の虚部がいずれも0であるとき、定義域エラーとなります。このときの戻り値はNaN+0×iです。

・x1の実部が負の数であり、かつx2の実部が非整数であり、かつx1及びx2の虚部がいずれも0であるとき、定義域エラーとなります。このときの戻り値はNaN+0×iです。

remainder関数群

第1引数をx1, 第2引数をx2とします。

・x1が±∞であり、かつx2がNaNではないとき、定義域エラーとなります。このときの戻り値はNaNです。

・x1がNaNではなく、かつx2が0であるとき、定義域エラーとなります。このときの戻り値はNaNです。

acos関数群

引数をxとします。

・xがx<-1または1<xを満たすとき、定義域エラーとなります。このときの戻り値はNaNです。

・xがNaNであるとき、定義域エラーとなります。このときの戻り値はNaNです。

asin関数群

引数をxとします。

・xがx<-1または1<xを満たすとき、定義域エラーとなります。このときの戻り値はNaNです。

・xがNaNであるとき、定義域エラーとなります。このときの戻り値はNaNです。

atan関数群

引数をxとします。xがNaNであるとき、定義域エラーとなります。このときの戻り値はNaNです。

cosh関数群

引数をxとします。xがNaNであるとき、定義域エラーとなります。このときの戻り値はNaNです。

exp関数群

引数をxとします。xがNaNであるとき、定義域エラーとなります。このときの戻り値はNaNです。

frexp関数群

第1引数をx1, 第2引数をx2とします。x1がNaNであるとき、定義域エラーとなります。このときの戻り値はNaNです。なお、x2の指し先は変更しません。

log10関数群

引数をxとします。

・x<0であるとき、定義域エラーとなります。このときの戻り値はNaNです。

・xがNaNであるとき、定義域エラーとなります。このときの戻り値はNaNです。

log関数群

引数をxとします。

・xがNaNであるとき、定義域エラーとなります。このときの戻り値はNaNです。

・x<0であるとき、定義域エラーとなります。このときの戻り値はNaNです。

sin関数群

引数をxとします。xが±∞であるか、またはNaNであるとき、定義域エラーとなります。このときの戻り値はNaNです。

cos関数群

引数をxとします。xが±∞であるか、またはNaNであるとき、定義域エラーとなります。このときの戻り値はNaNです。

sinh関数群

引数をxとします。xがNaNであるとき、定義域エラーとなります。このときの戻り値はNaNです。

tan関数群

引数をxとします。xが±∞であるか、またはNaNであるとき、定義域エラーとなります。このときの戻り値はNaNです。

tanh関数群

引数をxとします。xがNaNであるとき、定義域エラーとなります。このときの戻り値はNaNです。

atan2関数群

第1引数をx1, 第2引数をx2とします。

・x1が0であり、かつx2が0であるとき、定義域エラーとなります。このときの戻り値はNaNです。

・x1またはx2がNaNであるとき、定義域エラーとなります。このときの戻り値はNaNです。

・x1が±∞であり、かつx2が±∞であるとき、定義域エラーとなります。このときの戻り値はNaNです。

ceil関数群

引数をxとします。xがNaNであるとき、定義域エラーとなります。このときの戻り値はNaNです。

floor関数群

引数をxとします。xがNaNであるとき、定義域エラーとなります。このときの戻り値はNaNです。

fmod関数群

第1引数をx1, 第2引数をx2とします。

・x2が0であるとき、定義域エラーとなります。このときの戻り値はNaNです。

・x1またはx2がNaNであるとき、定義域エラーとなります。このときの戻り値はNaNです。

・x1が±∞であるとき、定義域エラーとなります。このときの戻り値はNaNです。

ldexp関数群

第1引数をx1, 第2引数をx2とします。x1がNaNであるとき、定義域エラーとなります。このときの戻り値はNaNです。

modf関数群

第1引数をx1, 第2引数をx2とします。x1がNaNであるとき、定義域エラーとなります。このときの戻り値はNaNです。なお、x2の指し先はNaNになります。

pow関数群

第1引数をx1, 第2引数をx2とします。

・x1がNaNであるか、またはx2がNaNであるとき、定義域エラーとなります。このときの戻り値はNaNです。

・x1が0であり、かつx2が0以下であるとき、定義域エラーとなります。このときの戻り値はNaNです。

・x1がx1<0を満たし、かつx2が整数ではないとき、定義域エラーとなります。このときの戻り値はNaNです。

sqrt関数群

引数をxとします。

・xがx<0を満たすとき、定義域エラーとなります。このときの戻り値はNaNです。

・xがNaNであるとき、定義域エラーとなります。このときの戻り値はNaNです。

(73)

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

返却値は0です。アンダーフロー発生時はerrnoにERANGEを設定します。アンダーフロー浮動小数点例外を生成します。

(74)

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

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

(75)

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

31とします。

(76)

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

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

(77)

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

0 とします。

(78)

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

低水準インタフェースルーチンの仕様に依存します。

(79)

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

低水準インタフェースルーチンの仕様に依存します。

(80)

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

低水準インタフェースルーチンの仕様に依存します。

(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)

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

(89)

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

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

(90)

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

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

(91)

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

ファイル名がない場合は現在のストリームを指定したモードに変更します。

(92)

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

正の無限大は++++++、負の無限大は------、NaNは******を出力します。

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

(93)

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

16進表記です。

(94)

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

直前の文字と直後の文字との範囲を示します。

(95)

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

16進数です。

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

(96)

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

ftell関数は低水準インタフェースルーチンの仕様に依存します。

fgetpos関数、fsetpos関数はサポートしていません。

(97)

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

strtof関数、strtold関数、wcstod関数、wcstof関数、wcstold関数はqNaNと解釈します。strtod関数は浮動小数点型の数値以外と解釈します。

(98)

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

strtod関数、strtof関数、strtold関数、wcstod関数、wcstof関数、wcstold関数はグローバル変数errnoにERANGEを設定します。

(99)

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

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)

abort関数、exit関数、_Exit関数はサポートしていません。

(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)

hypot関数群、ldexp関数群、lgamma関数群、tgamma関数群、erfc関数群、pow関数群、scalbln関数群、tan関数群、exp関数群、nexttoward関数群で結果がオーバーフローまたはアンダーフローした場合に"不正確結果"浮動小数点例外を生成する可能性があります。

(108)

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

lround関数群は丸め方向モードに従わないケースがあります。

(109)

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

7. ライブラリ関数仕様」にある各ヘッダ・ファイルを参照してください。

(110)

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

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

(111)

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

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

 

翻訳限界

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

「制限なし」の項目は、上限はホスト環境のメモリ状況に依存します。

項目

限界値

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

制限なし

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

制限なし

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

128

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

制限なし

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

制限なし

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

制限なし

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

制限なし

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

制限なし

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

制限なし

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

制限なし

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

制限なし

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

制限なし

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

制限なし

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

制限なし

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

制限なし

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

制限なし

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

2147483647

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

制限なし

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

2147483647

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

制限なし

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

制限なし

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

制限なし