C语言学习17:typedef

张建 lol

typedef

C 语言提供了关键字 typedef ,可以用它为 类型 取一个新的名字。

例如:为无符号字符定义一个名称 UChar

typedef unsigned char UChar;

例如:为结构体定义一个名称 MyBook

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <string.h>

typedef struct Book{
char title[50];
int book_id;
}MyBook;

int main(int argc, const char * argv[]) {

// typedef前
// struct Book myBook;

// typedef后
MyBook book;
strcpy(book.title,"ZJ");
book.book_id = 12;

printf("标题:%s\n",book.title);
printf("书 ID:%d\n",book.book_id);

return 0;
}

当上面的代码 编译和运行 时,产生的结果

1
2
3
标题:ZJ
书 ID:12
Program ended with exit code: 0

typedef 和 #define 区别

  • typedef 仅限于为 类型 定义名称;#define 不仅可以为 类型 定义别买,也可以为 数值 定义

  • typedef由编译器 执行 解释;#define由编译器 预处理 处理

  • Post title:C语言学习17:typedef
  • Post author:张建
  • Create time:2023-02-18 13:58:49
  • Post link:https://redefine.ohevan.com/2023/02/18/C学习/C语言学习17:typedef/
  • Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.
On this page
C语言学习17:typedef