黑马程序员技术交流社区
标题:
看了不少说typedef和#define的,也说说自己的体会
[打印本页]
作者:
wang2003
时间:
2014-11-23 11:58
标题:
看了不少说typedef和#define的,也说说自己的体会
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什么的了
也有一些程序中多次用到的常数,修改维护的时候只要改动一下就好。
作者:
楚燮哥哥
时间:
2014-11-23 12:02
typedef的强大毋庸置疑,开始我还以为这是class的另一个版本呢
作者:
zhaihaohk
时间:
2014-11-23 13:49
#define 其实就是简单的替换,编译器在编译的时候会把别名相应替换下,比如你觉得 某个类型,常量,或表示在程序中要经常用到,就会使用宏定义。typdef 个人更多用在结构体上,特方便
作者:
itDave
时间:
2014-11-23 17:21
楼上基本对了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2