黑马程序员技术交流社区

标题: 日课13 c语言之typedef定义别名 [打印本页]

作者: 黑白世界    时间: 2015-9-25 10:52
标题: 日课13 c语言之typedef定义别名
关键字typedef的作用:给一个数据类型定义别名,在下边的代码中都可以使用这个别名。
应用场景:
1.基本数据类型
2.指向基本数据类型的指针
3.结构体
4.枚举
5.指向函数的指针
6.指向结构体的指针
以下为详细的定义和使用:
  1. //1.基本数据类型
  2. typedef int myInt;
  3. myInt n = 5;
复制代码
  1. //2.指向基本数据类型的指针
  2. typedef char * string;
  3. string s1 = "这个以假乱真的string";
复制代码
  1. //3.结构体
  2. //(1)基本用法
  3. struct student {
  4.     int age;
  5.     char *name;
  6. };
  7. struct student stu1;
  8. typedef struct student myStudent;
  9. myStudent stu2;
  10. //(2)简化用法
  11. typedef struct student {
  12.     int age;
  13.     char *name;
  14. } myStudent ;
  15. myStudent stu3;
  16. //(3)更简化用法
  17. typedef struct {
  18.     int age;
  19.     char *name;
  20. } myStudent ;
  21. myStudent stu4;
复制代码
  1. //4.枚举
  2. //(1)基本用法
  3. enum sex{
  4.    men,
  5.    women
  6. };
  7. enum sex sex1;
  8. typedef enum sex mySex;
  9. mySex sex2;
  10. //(2)简化用法
  11. typedef enum sex{
  12.    men,
  13.    women
  14. }mySex ;
  15. mySex sex3;
  16. //(3)更简化用法
  17. typedef enum{
  18.    men,
  19.    women
  20. }mySex ;
  21. mySex sex4;
复制代码
  1. //5.指向函数的指针
  2. int func(int a,int b){
  3.     ptintf("%d\n",a+b);
  4. }
  5. int (*p)(int,int)=func;
  6. typedef int (*myPoint)(int,int);
  7. myPoint p2 = func;
复制代码

  1. //6.指向结构体的指针
  2. //(1)基本定义
  3. struct student {
  4.     int age;
  5.     char *name;
  6. };
  7. struct student  *p1 = {22,"xiaoming"};  
  8. typedef struct student  * myPoint;
  9. myPoint p2 = {22,"xiaoming"};
  10. //(2)简单定义
  11. typedef struct student {
  12.     int age;
  13.     char *name;
  14. } * myPoint;
  15. myPoint p3 = {22,"xiaoming"};
  16. //(3)更简单定义
  17. typedef struct student {
  18.     int age;
  19.     char *name;
  20. } * myPoint;
  21. myPoint p4 = {22,"xiaoming"};


复制代码








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2