Sun Studio 12:C 用户指南

7.3.9 sizeof( ) 是无符号 long

在 LP64 数据类型模型中,sizeof() 的有效类型为无符号长型。有时,sizeof() 会传递给需要使用类型为 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