Objective-C typedef用法 – Objective-C开发教程

上一章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语句由预处理程序处理。
【Objective-C typedef用法 – Objective-C开发教程】下面是#define?的最简单用法:
#import < Foundation/Foundation.h> #define TRUE1 #define FALSE 0 int main( ) { NSLog( @"TRUE : %d", TRUE); NSLog( @"FALSE : %d", FALSE); return 0; }

    推荐阅读