Objective-C Typedef

Ngôn ngữ lập trình Objective-C cung cấp một từ khóa có tên là typedef, mà bạn có thể sử dụng để đặt tên mới cho một loại. Sau đây là một ví dụ để xác định một thuật ngữBYTE cho các số một byte -

typedef unsigned char BYTE;

Sau định nghĩa kiểu này, số nhận dạng BYTE có thể được sử dụng làm chữ viết tắt cho kiểu unsigned char, for example:.

BYTE  b1, b2;

Theo quy ước, chữ hoa được sử dụng cho các định nghĩa này để nhắc nhở người dùng rằng tên kiểu thực sự là một chữ viết tắt tượng trưng, ​​nhưng bạn có thể sử dụng chữ thường, như sau:

typedef unsigned char byte;

Bạn có thể dùng typedefđể đặt tên cho kiểu dữ liệu do người dùng xác định. Ví dụ: bạn có thể sử dụng typedef với cấu trúc để xác định kiểu dữ liệu mới và sau đó sử dụng kiểu dữ liệu đó để xác định trực tiếp các biến cấu trúc như sau:

#import <Foundation/Foundation.h>

typedef struct Books {
   NSString *title;
   NSString *author;
   NSString *subject;
   int book_id;
} Book;
 
int main() {
   Book book;
   book.title = @"Objective-C Programming";
   book.author = @"TutorialsPoint";
   book.subject = @"Programming tutorial";
   book.book_id = 100;
   
   NSLog( @"Book title : %@\n", book.title);
   NSLog( @"Book author : %@\n", book.author);
   NSLog( @"Book subject : %@\n", book.subject);
   NSLog( @"Book Id : %d\n", book.book_id);

   return 0;
}

Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:

2013-09-12 12:21:53.745 demo[31183] Book title : Objective-C Programming
2013-09-12 12:21:53.745 demo[31183] Book author : TutorialsPoint
2013-09-12 12:21:53.745 demo[31183] Book subject : Programming tutorial
2013-09-12 12:21:53.745 demo[31183] Book Id : 100

typedef so với #define

Các #define là một chỉ thị Objective-C, cũng được sử dụng để xác định bí danh cho các kiểu dữ liệu khác nhau tương tự như typedef nhưng với những khác biệt sau -

  • Các typedef bị giới hạn trong việc đặt tên tượng trưng cho các loại chỉ trong khi #define cũng có thể được sử dụng để xác định bí danh cho các giá trị, chẳng hạn như bạn có thể xác định 1 là MỘT, v.v.

  • Các typedef việc giải thích được thực hiện bởi trình biên dịch trong đó #define các câu lệnh được xử lý bởi bộ xử lý trước.

Sau đây là cách sử dụng đơn giản nhất của #define -

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

   return 0;
}

Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:

2013-09-12 12:23:37.993 demo[5160] Value of TRUE : 1
2013-09-12 12:23:37.994 demo[5160] Value of FALSE : 0