C语言 typedef
1.typedef是将【类型名】装换为【自定义名】
您也可以使用 typedef 来为用户自定义的数据类型取一个新的名字。例如,您可以对结构体使用 typedef 来定义一个新的数据类型名字,然后使用这个新的数据类型来直接定义结构变量,如下:
1 #include <stdio.h> 2 #include <string.h> 3 4 typedef struct Books 5 { 6 char title[50]; 7 char author[50]; 8 char subject[100]; 9 int book_id; 10 } Book; 11 12 int main( ) 13 { 14 Book book; 15 16 strcpy( book.title, "C 教程"); 17 strcpy( book.author, "Runoob"); 18 strcpy( book.subject, "编程语言"); 19 book.book_id = 12345; 20 21 printf( "书标题 : %s\n", book.title); 22 printf( "书作者 : %s\n", book.author); 23 printf( "书类目 : %s\n", book.subject); 24 printf( "书 ID : %d\n", book.book_id); 25 26 return 0; 27 }
当上面的代码被编译和执行时,它会产生下列结果:
书标题 : C 教程 书作者 : Runoob 书类目 : 编程语言 书 ID : 12345
typedef vs #define
#define 是 C 指令,用于为各种数据类型定义别名,与 typedef 类似,但是它们有以下几点不同:
- typedef 仅限于为类型定义符号名称,#define 不仅可以为类型定义别名,也能为数值定义别名,比如您可以定义 1 为 ONE。
- typedef 是由编译器执行解释的,#define 语句是由预编译器进行处理的。
一个二次元的生物

浙公网安备 33010602011771号