个性化阅读
专注于IT技术分析

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

上一章Objective-C开发教程请查看:Objective-C预处理器用法

Objective-C编程语言提供了一个名为typedef的关键字,你可以使用它为类型赋予一个新名称。下面是一个为无符号char定义一个类型别名BYTE:

typedef unsigned char BYTE;

在这个类型定义之后,标识符字节可以用作无符号char类型的缩写,例如:

BYTE  b1, 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语句由预处理程序处理。

下面是#define−的最简单用法:

#import <Foundation/Foundation.h>
 
#define TRUE  1
#define FALSE 0
 
int main( ) {
   NSLog( @"TRUE : %d", TRUE);
   NSLog( @"FALSE : %d", FALSE);

   return 0;
}
赞(0)
未经允许不得转载:srcmini » Objective-C typedef用法 – Objective-C开发教程

评论 抢沙发

评论前必须登录!