LP64 データ型モデルでは、sizeof() の有効な型は unsigned long です。sizeof() は、ときには int 型の引数を待つ関数に渡されたり、整数に代入あるいは型変換されたりします。そうした場合は、切り捨てによってデータが失われることがあります。
long a[50]; unsigned char size = sizeof (a); % 警告: 代入によって 62 ビット定数が 8 ビットに切り捨てられました 警告: 初期設定子が適合していないか範囲を超えています: 0x190