速查表:
char-128至127 (1字节) )。
short-32767~32768(2bytes )3*10^4
unsignedshort0~65536(2bytes )6*10^4
int-2147483648~2147483647 (4bytes )2*10^9
unsignedint0~4294967295(4bytes )4*10^9
long==int
longlong-9223372036854775808~922337203685475807 (8bytes )9*10^18
double1.7*10^308(8bytes ) )
符号属性长度属性基元所占位数取值范围的输入子示例输出子示例
-- -- char 8 -2^7 ~ 2^7-1 %c %c、%d、%u
signed -- char 8 -2^7 ~ 2^7-1 %c %c、%d、%u
unsigned -- char 8 0 ~ 2^8-1 %c %c、%d、%u
[ signed ] short [ int ] 16-2 ^ 15~2 ^ 15-1 % HD
unsigned short [ int ] 160~2 ^ 16-1 % Hu、%ho、%hx
[signed] -- int 32 -2^31 ~ 2^31-1 %d
unsigned -- [int] 32 0 ~ 2^32-1 %u、%o、%x
[ signed ] long [ int ] 32-2 ^ 31~2 ^ 31-1 % LD
unsigned long [ int ] 32 0至2 ^ 32-1 % Lu、%lo和%lx
[ signed ] longlong [ int ] 64-2 ^ 63~2 ^ 63-1 % i64d
unsigned longlong [ int ] 640至2 ^ 64-1 % i64u、%I64o和%I64x
-- -- float 32 /- 3.40282e 038 %f、%e和%g
-- -- double 64 /- 1.79769e 308 %lf、%le、%lg %f、%e和%g
-- long double 96 /- 1.79769e 308 %Lf,%Le,%Lg
注意:
浮点参数堆栈规则: float(4字节)类型扩展为double(8) 8字节)进行堆栈。
因此,在输入时,必须区分float(%f )和double (% lf ),但在输出时)只需使用% f (% f )。
printf函数根据双精度规则输出按入堆栈的浮点(扩展为双精度)和双精度数据。
如果在输出时指定%lf格式,gcc/mingw32编译器将发出警告。