加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

typedef 和 #define 的差异

发布时间:2021-05-29 12:30:03 所属栏目:编程 来源:互联网
导读:typedef 在示意上偶然辰相同于 #define,但它和宏替代之间存在一个要害性的区别。正确思索这个题目的要领就是把 typedef 当作一种彻底的封装范例,声明之后不能
typedef 在示意上偶然辰相同于 #define,但它和宏替代之间存在一个要害性的区别。正确思索这个题目的要领就是把 typedef 当作一种彻底的“封装”范例,声明之后不能再往内里增进此外对象。

1) 可以行使其他范例声名符对宏范例名举办扩展,但对 typedef 所界说的范例名却不能这样做。如下所示:

#define INTERGE int
unsigned INTERGE n;  //没题目

typedef int INTERGE;
unsigned INTERGE n;  //错误,不能在 INTERGE 前面添加 unsigned


2) 在持续界说几个变量的时辰,typedef 可以或许担保界说的全部变量均为统一范例,而 #define 则无法担保。譬喻:

#define PTR_INT int *
PTR_INT p1, p2;

颠末宏替代往后,第二行变为:

int *p1, p2;

这使得 p1、p2 成为差异的范例:p1 是指向 int 范例的指针,p2 是 int 范例。

相反,在下面的代码中:

typedef int * PTR_INT
PTR_INT p1, p2;

p1、p2 范例沟通,它们都是指向 int 范例的指针。

typedef 和 #define 的差别

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读