LP64 データ型モデルでは、sizeof は unsigned 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 |