您的位置:首页 > 其它

typedef和define区别

2014-04-16 07:55 183 查看
1) #define

预处理指令



编译预处理时进行简单

替换



作正确性检查



关含义

否正确照样带入

只有

编译已被展开

源程序时才会发现

错误并报错

:
#define PI 3.1415926
程序



:area=PI*r*r 会替换

3.1415926*r*r






把#define语句



数字9 写成字母g 预处理也照样带入


2)typedef



编译时处理







自己

作用域内给



已经存



类型



别名





You cannot use the typedef specifier inside a function definition


3)typedef int * int_ptr;
与
#define int_ptr int *
作用都

用int_ptr代表 int * ,



二者

前面所说

#define

预处理 时进行简单

替换

而typedef



简单替换

采用

同定义变量

方法

样来声明



种类型



说;

//refer to (xzgyb(老达摩))
#define int_ptr int *
int_ptr a, b; //相当于int * a, b; 只

简单

宏替换

typedef int* int_ptr;
int_ptr a, b; //a, b 都

指向int

指针,typedef

int* 引入了



助记符


也说明了





下面观点成立
//QunKangLi(维护成本与程序员

创造力

平方成正比)
typedef int * pint ;
#define PINT int *




:
const pint p ;//p



更改



p指向

内容

更改
const PINT p ;//p

更改





p指向

内容



更改


pint



种指针类型 const pint p



把指针给锁住了 p



更改
而const PINT p

const int * p 锁



指针p所指

对象


3)也许您已经注意

#define



语句

行末加分号

否则 会连分号

块置换
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: