这篇内容实际上来源于菜鸟教程
C 语言提供了 typedef 关键字,您可以使用它来为类型取一个新的名字。下面的实例为单字节数字定义了一个术语 BYTE :
1
| typedef unsigned char BYTE;
|
在这个类型定义之后,标识符 BYTE 可作为类型 unsigned char 的缩写,例如:
按照惯例,定义时会大写字母,以便提醒用户类型名称是一个象征性的缩写,但您也可以使用小写字母
您也可以使用 typedef 来为用户自定义的数据类型取一个新的名字。例如,您可以对结构体使用 typedef 来定义一个新的数据类型名字,然后使用这个新的数据类型来直接定义结构变量,如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| #include <stdio.h> #include <string.h>
typedef struct Books //这个类型叫 struct Books { char title[50]; char author[50]; char subject[100]; int book_id; } Book;
int main( ) { Book book; strcpy( book.title, "C 教程"); strcpy( book.author, "Runoob"); strcpy( book.subject, "编程语言"); book.book_id = 12345; printf( "书标题 : %s\n", book.title); printf( "书作者 : %s\n", book.author); printf( "书类目 : %s\n", book.subject); printf( "书 ID : %d\n", book.book_id); return 0; }
|
而在C++中,在声明 struct Books 时,它会自动生成一个别名为 Books ,就没必要再用 typedef 了
思考题:辨析下面两个的不同
1 2 3 4 5 6 7
| typedef struct Books { char title[50]; char author[50]; char subject[100]; int book_id; } Book;
|
1 2 3 4 5 6 7 8
| struct Books { char title[50]; char author[50]; char subject[100]; int book_id; } Book;
|