typedef和#define 的区别

 我来答
My_Persistence
2017-12-21 · TA获得超过3466个赞
知道大有可为答主
回答量:1201
采纳率:81%
帮助的人:420万
展开全部
区别如下:
1、typedef要写成语句的形式,即末尾要加分号(;),而#define是宏定义,末尾没有分号
2、typedef是为已经存在的数据类型起个别名,用这个别名来表示这个数据类型,如:
typedef unsigned int uInt32;
uInt32 a,b,c;  //定位了3个无符号整型变量
#define是定义一个宏名来表示跟在其后面的一个字符串或者表达式,它只是作简单的字符替换,在预处理阶段
编译器会将所有的宏名用其后面的字符串或者表达式作替换,而不做任何的运算。如:
#define N 10  //用N来表示常数10
#define MAX(a,b) (a>b?a:b)  //用带参数的宏名MAX来表示表达式(a>b?a:b)。
调用的时候:
int a=3,b=4;
MAX(A,B);  //等价于(a>b?a:b); 因为它只是将实参传进去,然后做简单的字符替换。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式