c中基本数据类型
在 C 语言中,有几种基本数据类型可以用来存储不同类型的数据。Objective-C 的 NSNumber 类可以封装这些基本数据类型,使其可以作为对象使用。
C 语言的基本数据类型
以下是 C 语言的基本数据类型:
整数类型:
- int:基本的整数类型。
- short:短整数类型,通常比 int 短。
- long:长整数类型,通常比 int 长。
- long long:超长整数类型。
- unsigned 类型:对应上述所有类型的无符号版本(如 unsigned int、unsigned short、unsigned long、unsigned long long)。
- char:字符类型,通常用于表示字符。
- signed char:有符号字符类型。
- unsigned char:无符号字符类型。
浮点数类型:
- float:单精度浮点数类型。
- double:双精度浮点数类型。
- long double:扩展精度浮点数类型。
布尔类型(在 C99 及以上版本中引入):
- _Bool:布尔类型。
- bool:使用 stdbool.h 头文件定义。
NSNumber 封装 C 的基本数据类型
Objective-C 的 NSNumber 可以封装上述 C 的基本数据类型,使它们可以作为对象使用。以下是 NSNumber 封装不同类型的方法:
- 整数类型封装:
- int:numberWithInt:
- short:numberWithShort:
- long:numberWithLong:
- long long:numberWithLongLong:
- unsigned int:numberWithUnsignedInt:
- unsigned short:numberWithUnsignedShort:
- unsigned long:numberWithUnsignedLong:
- unsigned long long:numberWithUnsignedLongLong:
- char:numberWithChar:
- unsigned char:numberWithUnsignedChar:
- signed char:numberWithChar:(可以使用同一个方法)
- 浮点数类型封装:
- float:numberWithFloat:
- double:numberWithDouble:
- long double:没有直接的方法,可以使用 double 封装
- 布尔类型封装:
- BOOL(Objective-C 定义的布尔类型,实质上是 signed char):numberWithBool:
特定的基础类型和封装类型
- int 和 NSInteger
- int:标准的 C 语言整数类型,通常是 32 位。
- NSInteger:一个整数类型,根据平台的不同,其实际类型可能是 int 或 long。在 32 位平台上,NSInteger 是 int,在 64 位平台上是 long。
int intValue = 42;
NSInteger nsIntegerValue = 42;
- float 和 CGFloat
- float:标准的 C 语言单精度浮点数类型。
- CGFloat:一个浮点数类型,根据平台的不同,其实际类型可能是 float 或 double。在 32 位平台上,CGFloat 是 float,在 64 位平台上是 double。
float floatValue = 3.14f;
CGFloat cgFloatValue = 3.14f; // 在 32 位平台上
CGFloat cgFloatValue64 = 3.14; // 在 64 位平台上