1.概念及语法格式 C语言不仅提供了丰富的数据类型,而且允许用户自定义类型说明符,也就是说允许由用户位数据类型取【别名】。
typedef定义的一般形式为: typedef 元类型名 新类型名; 一种原类型名中含有定义部分,新类型名一般用大写表示,以便于区分。 例如: - typedef int AMOS;//取别名后,与原来型无区别
- AMOS sum = 1000;
- printf("sum = %d", sum);
复制代码打印结果: sum = 1000
2.typedef的使用方法 直接上代码: - #include <stdio.h>
- //定义一个结构体
- struct Student{
- int num;
- char *name;
- int age;
- };
-
- int add(int a, int b){
- return a + b;
- }
-
- int main(int argc, const char * argv[])
- {
-
- //1.用在基本类型
- typedef int AMOS;
- AMOS a = 4;
- printf("a = %d\n", a);
- //2.用在数组
- typedef int ARRAY[5];
- ARRAY b = {1,2,3,4,5};//相当于int b[5] = {1,2,3,4,5};
- printf("数组b的元素:");
- for (int i = 0; i < 5; i++) {
- printf("%d ", b[i]);
- }
- //3.用在结构体,用法一
- typedef struct Student STUDENT;
- STUDENT stu;
- stu.num = 1;
- stu.name = "Amos";
- stu.age = 24;
- printf("\n结构体\nnumber: %d, name: %s, age:%d",stu.num,stu.name,stu.age);
-
- //用在结构体,用法二
- typedef struct {//此处的结构体名可以不写
- int hour;
- int minitue;
- int second;
- } Time;
- Time time = {12, 50, 20};
-
- printf("\ntime is: %0d:%0d:%0d\n",time.hour,time.minitue,time.second);
-
- //4.用在枚举类型
- typedef enum {Spring,Summer,Autumn,Winter} Season;//枚举名也可省略
- Season mySeason = Spring;
- printf("Spring's value is : %d\n", mySeason);
-
- //5.用在函数指针
- //先定义一个函数指针
- int (*p)(int, int);
- //给该函数指针定义别名
- typedef int (*FUN)(int, int);
- FUN f1 ,f2;
- f1 = add;
- int sum = f1(1,2);
- printf("f1(1,2) = %d\n",sum);
-
- return 0;
- }
-
复制代码
|