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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 令狐冲 中级黑马   /  2015-12-1 19:55  /  1245 人查看  /  7 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

1、概念及语法格式
        C语言不仅供了丰富的数据类型,而且还允许由用户自己定义类型说明符,也就是说允许由用户为数据类型取“别名”。 (起外号) 作用是简化代码,减少声明错误。 有时也可用宏定义来代替typedef的功能,但是宏定义是由预处理完成的,而typedef则是在编译 时完成的,后者更为灵活方便。
        typedef定义的一般形式为:typedef 原类型名 新类型名;
        其中原类型名中含有定义部分,新类型名一般用大写表示,以便于区别。 如:
                typedef int ZhengXing ;
                ZhengXing a = 10 ; // 等价于 int a = 10 ;

2、使用方法
        1)基本数据类型例如,有整型量a、b、其说明如下:int a,b;         其中int是整型变量的类型说明符。int的完整写法为integer,为了增加程序的可读性, 可把整型说明符用typedef定义为:typedef int INTEGER。这以后就可用INTEGER来代替int作整型变量的类型说明了。 例如:INTEGER a,b; 它等效于: int a,b;
        用typedef定义数组、指针、结构等类型将带来很大的方便,不仅使程序书写简单而且使意义更为明确,因而增强了可读性。
        2)数组类型 例如:typedef char NAME[20]; 表示NAME是字符数组类型,数组长度为20。然后可用NAME 说明变量, 如:NAME a1,a2,s1,s2; 完全等效于: char a1[20],a2[20],s1[20],s2[20]
        3)结构体类型 第一种形式:构建结构体的时候直接定义别名。
                              第二种形式: 给匿名结构体定义别名。
                              第三种形式:先定义结构 再给这个结构体定义别名
        4)枚举类型 第一种形式:先定义枚举类型,再给这个枚举定义别名
                          第二种形式: 定义的同时进行定义别名。
                                typedef enum _Sex{ SexMan,SexWoman,SexOther } Sex;
                                通过别名 Sex 定义枚举变量sex, 初始化为 SexOther Sex sex = SexOther;
                          第三种形式:(匿名) 给匿名枚举定义别名
                                typedef enum{ ColorRed,ColorBule,ColorGreen, ColorYellow} Color;
                                别名为Color 变量为color 初始化为ColorGreen Color color = ColorGreen;
        5)函数指针
                //int (* p1)(int,int); <---之前定义的函数指针
                //重新定义新的类型为FUN   //给函数指针起别名
                typedef int (*FUN)(int,int);
                //用别名定义两个指针变量
                        FUN f1,f2;
                //给函数指针初始化
                          f1 = sum;
                printf("%d\n",f1(12,34));

7 个回复

倒序浏览
哥们加油!哥们加油!哥们加油!
回复 使用道具 举报
不错...................
回复 使用道具 举报
#define跟typedef差不多。老是搞错
回复 使用道具 举报
#define跟typedef差不多。老是搞错
回复 使用道具 举报
不错,赞一个。
回复 使用道具 举报
不错不错。赞赞。。
回复 使用道具 举报
已收藏!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马