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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Jack-xie 中级黑马   /  2014-10-16 20:41  /  3386 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

typedef的作用就是给数据类型起别名。

1.给基本数据类型起别名:
typedef int MyInt;
typedef MyInt MyInt2;

2.给指针类型起别名:
typedef char *string;
string name = "Jack";

3.给结构体起别名:
typedef struct student
{
        int age;
}MyStu;

typedef struct
{
        int age;
}MyStu;

4.给枚举起别名:
typedef enum{Man,Woman}Gender;

5.给函数指针起别名:
typedef int (*MyPoint)(int,int);

6.给结构体指针改名:
typedef struct Person
{
        int age;
}* PersonPoint;

7.typedef和宏定义的区别:
typedef char* string1;  // 表示给 char* 起名为 string1
#define string2 char*;  // 表示把 char* 替换成 string2

相同点,都可以这么使用:
string1 s = "abc";
string2 ss = "ABC";

区别是:typedef是把类型给换名了,而宏定义只是纯粹的字符串替换。
比如:
string1 s1, s2;  因为string1是一个类型,所以相当于  string1 s1;   string1 s2; 也就是 char *s1; char *s2; 两个都是指针。   
string2 s3, s4;  则相当于   char *s3, s4;   也就相当于  char *s3; char s4;   所以s4并不是一个指针变量,而是一个char变量。

12 个回复

倒序浏览
挺完整的,不错
回复 使用道具 举报
再次充电
回复 使用道具 举报
mark 一下  
回复 使用道具 举报
学习学习。。。。。。
回复 使用道具 举报
总结的不赖
回复 使用道具 举报
这不错
回复 使用道具 举报
是个有用的东东
回复 使用道具 举报
总结的挺好的
回复 使用道具 举报
对我们这些初学者很有用
回复 使用道具 举报
又学习了
回复 使用道具 举报
有那么点包装的意思
回复 使用道具 举报
学习了,哈哈
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马