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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

wang2003

初级黑马

  • 黑马币:43

  • 帖子:29

  • 精华:0

  1.  定义数组类型
    typedef int MyIntArray [100];
    MyIntArray ia;
2.定义函数指针
   typedef void (*FUNCADDR)(int) ;
   FUNCADDR pFunc;  
这两个比较简单,不说那么多了

3.定义结构体类型
    typedef struct {int x; int y;} Point;  
    Point var_1; // 定义了变量var_1  
    Point array_1 [10]; // 定义了数组array_1  
    struct {Point part1; int part2;} cplx; // 定义了复杂类型变量cplx

只说第三种。可以定义结构体,然后结构体里面你就可以随便放东西了,类里面可以放的,都可以。包括函数指针什么,几乎可以和class媲美了!实际是使用,处理一些规律的数据,或者成组的数据,经常会用到。比如:
    typedef struct {int age; char name[20];} Student;

   Student stu1,sut2;

很方便,#define完全没法这么玩。貌似也只有typedef可以实现这个功能(希望大家继续讨论)。

#define更多时候是定义一些常量,最常见的就是PI 3.14什么的了
也有一些程序中多次用到的常数,修改维护的时候只要改动一下就好。

评分

参与人数 1黑马币 +1 收起 理由
星河鹭起 + 1

查看全部评分

3 个回复

倒序浏览
typedef的强大毋庸置疑,开始我还以为这是class的另一个版本呢
回复 使用道具 举报
#define 其实就是简单的替换,编译器在编译的时候会把别名相应替换下,比如你觉得 某个类型,常量,或表示在程序中要经常用到,就会使用宏定义。typdef 个人更多用在结构体上,特方便
回复 使用道具 举报
楼上基本对了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马