Solaris 64 ビット 開発ガイド

sizeofunsigned long である

LP64 データ型モデルでは、sizeofunsigned long の実効的なデータ型を持ちます。sizeof は、int 型 の引数を期待する (受け取る) 関数に渡されたり、int に代入またはキャストされることがあります。このような切り捨てによってデータが失われることがあります。次に例を示します。


long a[50];
unsigned char size = sizeof (a);

この場合、次の警告が出ます。


warning: 64-bit constant truncated to 8 bits by assignment
warning: initializer does not fit or is out of range: 0x190