SuSv3 ではssize_t
、符号付き整数型である必要があります。計算した値がそのようなデータ型に許可されている最大値よりも大きいかどうかを確認したい場合は、それを と比較できますがINT_MAX
、これは良くありません。
この比較を行うことができるより移植性の高い方法はありますか - 次のようf
に 機能するマクロ/関数
f(<typedef'ed datatype>) = {maximum value allowed for <TDDT> on this system)?
、または同じソートへのそのような操作の短いシーケンス?
システム:
Ubuntu 12.04。
glibc 2.15
カーネル 3.2.0
PS: これをグーグルで調べたとき、gcc 拡張機能の「typeof」が有望だと最初に思いました。しかし、ここでは役に立たないようです(または役に立ちますか?)。これは、gcc 拡張機能/属性/その他の可能性があるものは何でも問題ないと言うことです。