上一章Objective-C开发教程请查看:Objective-C预处理器用法
Objective-C编程语言提供了一个名为typedef的关键字,你可以使用它为类型赋予一个新名称。下面是一个为无符号char定义一个类型别名BYTE:
typedef unsigned char BYTE;
在这个类型定义之后,标识符字节可以用作无符号char类型的缩写,例如:
BYTEb1, b2;
按照惯例,大写字母用于这些定义,以提醒用户类型名实际上是一个符号缩写,但你可以使用小写字母,如下所示:
typedef unsigned char byte;
还可以使用typedef为用户定义的数据类型指定名称。例如,可以使用带结构的typedef定义新的数据类型,然后使用该数据类型直接定义结构变量,如下所示
#import <
Foundation/Foundation.h>typedef struct Books {
NSString *title;
NSString *author;
NSString *subject;
int book_id;
} Book;
int main() {
Book book;
book.title = @"数据结构和算法";
book.author = @"srcmini";
book.subject = @"数据结构和算法教程";
book.book_id = 100;
NSLog( @"Book title : %@", book.title);
NSLog( @"Book author : %@", book.author);
NSLog( @"Book subject : %@", book.subject);
NSLog( @"Book Id : %d", book.book_id);
return 0;
}
typedef和#define的区别#define是一个Objective-C指令,它也用于定义各种数据类型的别名,类似于typedef,但是有以下不同之处
- typedef仅限于为类型提供符号名,而#define也可以用于为值定义别名,比如可以将1定义为1,等等。
- typedef解释由编译器执行,其中#define语句由预处理程序处理。
#import <
Foundation/Foundation.h>
#define TRUE1
#define FALSE 0
int main( ) {
NSLog( @"TRUE : %d", TRUE);
NSLog( @"FALSE : %d", FALSE);
return 0;
}
推荐阅读
- Objective-C类型转换 – Objective-C开发教程
- Objective-C预处理器用法 – Objective-C开发教程
- Objective-C使用结构体 – Objective-C开发教程
- Objective-C使用字符串 – Objective-C开发教程
- Objective-C指针解释和用法详解 – Objective-C开发教程
- Objective-C数组用法介绍 – Objective-C开发教程
- Objective-C数字对象NSNumber – Objective-C开发教程
- Objective-C代码块block的介绍和用法 – Objective-C开发教程
- Objective-C声明、定义函数、调用函数和函数参数 – Objective-C开发教程