の署名されていない対応物はptrdiff_t
何ですか?そして同様に-署名された対応物はsize_t
何ですか?
私が達成しようとしているのは、ptrdiff_t
大きな値を気にせずに変数の正の値を格納するために使用できる符号なし型を使用することです。これはのようsize_t
です。
size_t
逆に、大きな値を気にせずに、の値を格納できる符号付き型が必要です。
の署名されていない対応物はptrdiff_t
何ですか?そして同様に-署名された対応物はsize_t
何ですか?
私が達成しようとしているのは、ptrdiff_t
大きな値を気にせずに変数の正の値を格納するために使用できる符号なし型を使用することです。これはのようsize_t
です。
size_t
逆に、大きな値を気にせずに、の値を格納できる符号付き型が必要です。
ptrdiff_t
(no uptrdiff_t
)に対応する正式な署名のないものはないと思いますが、それを使用size_t
するのはかなり合理的です。
POSIXでは、に署名された対応物size_t
はですssize_t
。read()
これは、たとえば、などの関数によって返される型です。
ssize_t
これは、基礎となるタイプとptrdiff_t
が異なる実装がほとんどないことを示唆しています。
size_t
オブジェクトのサイズを表すために使用されます。コンパイラの作成者は負のサイズのオブジェクトを作成しないと広く信じられていました。
ptrdiff_t`を使用すると、比較方法によって違いが生じるため、符号付きの型は理にかなっていることに注意してください(妥当な値のためにこれを符号なしの型に変更するのは簡単です)。
5.7加法演算子
6 [...]他の算術オーバーフローと同様に、結果が提供されたスペースに収まらない場合、動作は未定義です。[...]
したがって、「非常に大きな値」に対して特別なタイプを作成する必要がある場合があります。