int
をNaN
に設定できますか?はいの場合、int
がNaN
かどうかをどのように確認できますか?
いいえ、NaNは浮動小数点値です。
int
のすべての可能な値は数値です。
標準は言う:
6.2.6.2 40)たとえば、1つのパディングビットがパリティビットである場合、パディングビットの組み合わせによってはトラップ表現が生成される場合があります。とにかく、有効な値に対する算術演算では、オーバーフローなどの例外的な条件の一部として以外はトラップ表現を生成できません。これは、符号なしでは発生しません。タイプ。
したがって、mayが実装固有の無効な整数値である可能性がありますが、それらを生成する定義された方法はありません。
整数NaN
ほとんどの固定サイズの整数形式には、無効なデータを明示的に示す方法がありません。
いいえ、int
をNaNに設定することはできません。
Nanのような特定のint値はありません。通常、人々はこの値を表すために大きな整数を使用します。 unsigned intの場合、通常は-1を使用します。
失敗を処理するための最も適切なAPIは、次のようなAPIで2番目の整数エラーコードを返すことだと思います。
int myfunc(args, int* realReturn);
返されるintはエラーコードです。
前の出力は、呼び出しコードでポインタとして渡されます。
int myInt;
if (myFunc(args, &myInt) != 0) {
//handle error
}