返回介绍

入门

基础

进阶

37. typedef 关键字

发布于 2024-10-07 02:37:14 字数 4559 浏览 0 评论 0 收藏 0

typedef关键字

  • C语言不仅􏰀供了丰富的数据类型,而且还允许由用户自己定义类型说明符,也就是说允许由用户为数据类型取“别名”。
  • 格式: typedef 原类型名 新类型名;

  • 其中原类型名中含有定义部分,新类型名一般用大写表示,以便于区别。

  • 有时也可用宏定义来代替typedef的功能,但是宏定义是由预处理完成的,而typedef则是在编译 时完成的,后者更为灵活方便。

    typedef使用

  • 基本数据类型

typedef int INTEGER
INTEGER a; // 等价于 int a;
  • 也可以在别名的基础上再起一个别名
typedef int Integer;

typedef Integer MyInteger;
  • 用typedef定义数组、指针、结构等类型将带来很大的方便,不仅使程序书写简单而且使意义更为 明确,因而增强了可读性。

  • 数组类型

typedef char NAME[20]; // 表示NAME是字符数组类型,数组长度为20。然后可用NAME 说明变量,
NAME a; // 等价于 char a[20];
  • 结构体类型

  • 第一种形式:

 struct Person{
    int age;
    char *name;
};

typedef struct Person PersonType;
+ 第二种形式:
typedef struct Person{
    int age;
    char *name;
} PersonType;
+ 第三种形式:
typedef struct {
    int age;
    char *name;
} PersonType;
  • 枚举

  • 第一种形式:

enum Sex{
    SexMan,
    SexWoman,
    SexOther
};
typedef enum Sex SexType;
+ 第二种形式:
typedef enum Sex{
    SexMan,
    SexWoman,
    SexOther
} SexType;
+ 第三种形式:
typedef enum{
    SexMan,
    SexWoman,
    SexOther
} SexType;
  • 指针

  • typedef与指向结构体的指针

 // 定义一个结构体并起别名
  typedef struct {
      float x;
      float y;
  } Point;

 // 起别名
 typedef Point *PP;
  • typedef与指向函数的指针
// 定义一个sum函数,计算a跟b的和
  int sum(int a, int b) {
      int c = a + b;
      printf("%d + %d = %d", a, b, c);
      return c;
 }
 typedef int (*MySum)(int, int);

// 定义一个指向sum函数的指针变量p
 MySum p = sum;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文