@property(nonatomic,assign) uint64_t userID; %llu
@property(nonatomic,assign) int32_t followersCount; %u
@property(nonatomic,assign) int16_t followers; %hu
整型不同的表达方式是由于跨平台编程导致的
unsigned int attrCount; 声明无符号类型
特点:无符号数只有正数,且存储的数据范围是有符号的类型的2倍
回顾
1. 在C语言中有6种基本数据类型:short、int、long、float、double、char
整型:short, int, long
浮点型: float, double
字符型: char
2. typedef用来定义关键字或标识符的别名
1、这些类型的来源:这些数据类型中都带有_t ,_t表示这些数据类型是通过typedef定义的,而不是新的数据类型。也就是说,它们其实是我们已知的类型的别名。
2、使用这些类型的原因:方便代码的维护。比如,在C中没有bool型,于是在一个软件中,一个程序员使用int,一个程序员使用short,会比较混乱。
最好用一个typedef来定义一个统一的bool:
typedef char bool
在涉及到跨平台时,不同的平台会有不同的字长,所以利用预编译和typedef可以方便的维护代码。
unsigned
整型的每一种都分为:无符号(unsigned)和有符号(signed)两种类型(float和double总是带符号的),在除char以外的数据类型中,默认情况下声明的整型变量都是有符号的类型;char在默认情况下总是无符号的。
在除char以外的数据类型中,如果需声明无符号类型的话就需要在类型前加上unsigned。
无符号版本和有符号版本的区别就是无符号类型能保存2倍于有符号类型的正整数数据,比如16位系统中一个short能存储的数据的范围为-32768~32767,而unsigned能存储的数据范围则是0~65535。由于在计算机中,整数是以补码形式存放的。根据最高位的不同,如果是1,有符号数的话就是负数;如果是无符号数,则都解释为正数。
另外,unsigned若省略后一个关键字,大多数编译器都会认为是unsigned int。
参考:
http://www.360doc.com/content/18/1208/12/32862269_800182367.shtml
网友评论