私はperlxstutnewSVnv
を調べているところですが、例5と例6で見つけましたが、newSVuv
それがより適切だと思います。不思議なことnewSVnv
にも動作します。どうしたの?
1 に答える
3
double
UV (通常は ) の代わりにNV (Perl の C に相当するもの) を使用していると思いますunsigned int
。なぜなら (OS とコンパイル オプションによっては)、struct statfs
Perl が 32 ビットの int を使用しているにもかかわらず、 a の値の一部が 64 ビットである可能性があるためです。 . newSVnv
は、C コンパイラが任意の整数型を にキャストする方法を知っているため、機能しdouble
ます。
UV に収まる の任意のメンバーに置き換えることができ、正常に機能するnewSVnv
はずnewSVuv
です。statfs
Perl は、必要に応じて数値型を自動的に変換します。
于 2010-09-28T21:36:21.810 に答える