A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 布鲁兹老爷 中级黑马   /  2015-10-14 01:18  /  674 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


给变量类型起一个别名。
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;

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马