黑马程序员技术交流社区

标题: C语言学籍笔记11 [打印本页]

作者: 布鲁兹老爷    时间: 2015-10-14 01:18
标题: C语言学籍笔记11

给变量类型起一个别名。
typedefint MyInt;
typedef给结构体或枚举定义别名最为方便
//给结构体设置一个别名
//方法1:
struct Student
{
    int age;
};

typedef structStudent MyStu;

//方法2:
typedef struct
{
    int age;
    char *name;
}MyStu2;

int main()
{
    MyStustu1 = {20};
    MyStu2stu2 = {30, "tom"};
return 0;
}

第一种方法比较灵活,可以保留以前的定义变量的方式
struct Student stu3;
第二种就不行了。

枚举也是同理
typedef enum Sex
{
    Man,
    Woman
}MySex;

typedef enum{
    man,
    woman
}MySex2;



指向函数的指针也可以用typedef
   普通的函数指针
    int (*p)(int,int) = sum;
    int value = p(10,20);
   这样写很麻烦。这时候可以使用typedef定义一个指向函数的指针的类型。
typedef int(*MyPoint)(int, int);//定义指向函数的指针的类型智能这么写。
   然后就可以这样使用
    MyPointp = sum;
    MyPointp2 = minus;
   p(10,20);结果是30
   p2(20,10);结果是10



定义指向结构体的指针的类型
    typedef struct
    {
       int age;
       char *name;
    }MyStu2;
//指向结构体的指针的新类型定义
typedef MyStu2 * StudentPoint;



//main函数中调用
   MyStu2 stu = {10,"Tom"};
   StudentPoint stuP = &stu;
   printf("age = %d ,name = %s\n",stuP->age, stuP ->name);

也可以这么写
    typedef structStudent2
    {
       int age;
       char *name;
    }*StudentPoint2;






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