了解typedef

说明:

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

使用方法为:

typedef 原类型 新别名;
字段说明
原类型需要被定义的类型,如:char*、struct等
新别名代替原类型出现的新名字
使用方式
  1. 利用typedef定义一个通用的无符号整形声明

在不是用typedef前:

unsigned int age = 10;

使用typedef后:

//1.利用typedef来声音一个无符号的int类型
typedef unsigned int xuint;

void test_xunit();

void test_xunit() {
    //使用的时候就可以直接使用
    xuint age = 10;
    printf("age=%d", age);
}
  1. 定义一个指针类型:

不使用typedef前:

本想连续声明两个char*类型,可能得到的只有一个char*类型

//这样声明,实际只是p1为char* 类型,p2为char类型
    char* p1, p2;
    p1 = "你好啊1";
    p2 = "2";
    printf("%s,%c \n", p1, p2);

使用typedef后:

typedef char *PCHAR;
void test_char_p() {
    //这样子声明,p3和p4就都是char*类型了
    PCHAR p3, p4;
    p3 = "你好啊3";
    p4 = "你好啊4";
    printf("%s,%s", p3, p4);
}
  1. 定义一个结构体声明

比如有一个结构体:

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

在不使用typedef前,声明的时候都需要 struct Student,就像这样

void testStudent() {
    //声明的时候都需要 struct Student
    struct Student student;
    student.age = 10;
}

带了typedef后,就只需要使用别名了:

typedef struct Student Student_t;
void testStudent() {
    //  只需要使用别名
    Student_t student;
    student.age = 10;
}

typedef也可以直接用在结构体的声明,在声明的时候就用typedef,效果等同于上面一种声明方式,像这样声明结构体即可:

typedef struct Student {
    int age;
    char *name;
}Student_t;
总结

使用typedef的好处:

  1. 可以减少书写重复的代码
  2. 方便修改(在多处都使用到别名的时候,想要修改其声明的时候仅需要修改typedef的地方,而不需要每一处都去修改)
在C语言中,`typedef enum`是**结合了typedef和enum两个关键字来创建一个的枚举类型别名的方法**。 首先,让我们分别了解typedef和enum的基本概念: - **Enum(枚举)**:枚举是C语言中的一种数据类型,用于声明一组命名的整数值。它提供了一种方式来定义一个变量,这个变量只能从预定义的一组值中选取。例如,可以定义一个枚举类型来表示一周的七天,或者不同的颜色等。 - **Typedef**:typedef是C语言的一个关键字,它允许程序员为现有的数据类型创建一个的名称。这样做的目的是提高代码的可读性和方便性。例如,可以用typedef为int类型创建别名,如`typedef int INTEGER;`,之后就可以用INTEGER代替int来声明变量。 当结合使用typedef和enum时,可以创建一个的枚举类型的别名。这样做的好处是,可以在程序中多次使用这个别名来声明枚举类型的变量,而不需要每次都写出整个枚举类型的定义。这不仅可以减少打字工作量,还可以提高代码的清晰度和一致性。 此外,在使用typedef和enum时,需要注意以下几点: - **Typedef不产生类型**:typedef只是为现有类型提供了一个的名称,它并不创造的数据类型。 - **Enum的值是常量**:通过enum定义的值是真正的常量,它们在编译时被分配具体的整数值。 - **使用typedef enum时的注意事项**:在使用typedef为enum定义别名时,应该确保别名的名称清晰地反映了它所代表的枚举类型的含义,以避免混淆。 综上所述,`typedef enum`在C语言中是一个强大的工具,它允许程序员创建易于理解和使用的枚举类型别名,从而提高代码的可维护性和可读性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值