当前位置:首页 > 黑客服务 > 正文内容

typedef和define区别(条件编译的三种格式)

访客3年前 (2021-08-13)黑客服务477

typedef和define的区别是:define是预处理编辑器,可以定义宏被替换的可能性,typedef由编辑器处理,遵循作用域规则,可以作为定义类型别名

#define是一个c指令,也是定义各种类似typedef的数据类型的别名。但是,两者还是有区别的。接下来我会在文章中详细介绍两者的区别,有一定的参考作用,希望对大家有所帮助

1.预处理器VS编译器

#define由预处理器处理,它将#define值从定义点复制并粘贴到使用点。Typedef由编译器处理,是新类型的实际定义。当控制到达编译器时,所有的#define将被替换。

差异的影响

(1)typedef应以分号结束,而# #define不应以分号结束

(2)在# define中可能有替代的副作用,例如:

typedef char * string _ t; #定义string_d char * string_t s1,S2;// s1和s2都是char *类型 string_d s3,S4;// s3是char *但是s4是char(不是char *)。第二个声明中的问题是预处理器会用

char * s3,S4;这意味着s3属于char *类型,但s4属于char类型。如果希望所有变量都是指针类型,必须指定*

(3)typedef遵循范围规则。也就是说,如果在一个范围内(在一个函数内)定义了一个新类型,那么只有在该范围存在的情况下才会显示新类型的名称。但是,当预处理器遇到#define时,它将替换所有出现的内容(之后没有作用域规则)。例如:

int main (){ { //新范围开始 typedef int Myint _ t; #定义myInt_d int myInt _ t a;//的类型是int myInt _ d b;// b属于int类型 }//新范围结束 myInt _ t c;//错误,找不到输入myInt_t myInt _ d d//d的类型是int }2.宏VS类型别名

#define也可以用来定义宏,但是typedef只能用来为现有类型提供新的名称(它不能创建新的类型)。同样,可以使用# define来定义变量

#define N 10实际上并没有定义N,但是会在整个代码中用10替换N。它可以用来命名常量。Typedef只能为已定义的类型提供新名称

3.typedef用作类型别名

有些类型定义只能由typedef定义,不能由#define定义。示例:

(1)为大小为10的整数数组指定一个新名称

typedef int arr[10];(2)给结构类型起一个新名字

typedef结构{ int a; char b; } myType总结:

扫描二维码推送至手机访问。

版权声明:本文由黑客接单发布,如需转载请注明出处。

本文链接:https://therlest.com/104185.html

分享给朋友:

“typedef和define区别(条件编译的三种格式)” 的相关文章

吃鸡鸭的屁股会有病吗?我非常爱吃鸡鸭的屁股,但经常吃会有病吗?另

吃鸡鸭的屁股会有病吗?我非常爱吃鸡鸭的屁股,但经常吃会有病吗?另 鸡鸭的肛门附近组织,布满大大小小的腺体,各类秽物与毒素都在这些腺体囤积;鸡鸭的肛门也有非常高密度的大肠杆菌,所以鸡鸭的屁股不是少吃的问题,而是不能吃.吃得少可能没觉出怎样,多了问题就显出来了.而且鸡鸭屁股的大肠杆菌会随着蛋生出来的时...

身份证信息被黑客盗取(黑客能把手机内身份证信息盗取吗)

一、身份证信息被黑客盗取(黑客能把手机内身份证信息盗取吗)方法总结 1、黑客通过手身份姓名能否窃取别人银行卡里。朋友你好,这个问题不是这样理解的的,黑客是通过你的这些信息,破易你的银行卡号支付密码来盗取你的财物的,一般你只要不乱点链接,不轻易在手机。黑客控制了手机,窃取了身份证号码手机号姓名等所有...

聚乙烯市场价格走势图 「今日聚乙烯价格行情」

任何商谈价格无法刺激购买兴趣,疆内,谁知道黑龙江省近期聚乙烯的回收.整体库存不多。管材2480无税10700元/吨,00TN00无税9750元/吨。疆外。 最新走势?拜托了,齐鲁化工城PE市场早间多数!中油挂牌政策,问题问的很好产品名称价格HD60706000,这个网站不错。为您提供,6098无税7...

dnf国庆套礼包内容 「地下城国庆套2021」

很好,198元类型,比其他的高级时装属性好很多,称号加什么?还副送什么?礼包包含多少套物品?知道的说下!30号维护更新,奇幻之旅称号,非常划算。宝珠,价格是228和198两种时装套。 效果和白虎差不多,包括光环装扮,来说还可以。 100雷米,估计还几套新国庆时装,DNF2012国庆时装198礼包,最...

鸡业行情网今日鸡价,鸡业行情网下载安装

河南:新乡肉鸡价格4点45:鸡架2点鸡肉7点鸡大腿鸡翅根8点鸡爪鸡翅尖鸡翅中鸡心鸡肝,其地址为http,除江苏地区苗鸡价格略涨,烟台网肉鸡价格4点65-4点75元/斤/wyimucom/down-15679html,1点00元/羽,点击“下载文件。以市斤为单位/羽 菏泽鸡苗价格3点90-4点30元/...

铁盖子可以放入高压锅蒸吗?装酱料的铁盖子,外面的涂层有些剥落,好

铁盖子可以放入高压锅蒸吗?装酱料的铁盖子,外面的涂层有些剥落,好 铁盖子可以放入高压锅蒸吗? 装酱料的铁盖子,外面的涂层有些剥落,好象也没锈,可以拿它盖严瓶子入高压锅蒸吗? 绝对不行!既危险又不卫生。盖住的瓶子在高压锅中加热,很容易形成压力差而爆炸;铁在高压锅中的水蒸汽作用下极易变成四氧化三...

评论列表

惑心淤浪
2年前 (2022-07-06)

e也可以用来定义宏,但是typedef只能用来为现有类型提供新的名称(它不能创建新的类型)。同样,可以使用# define来定义变量#define N 10实际上并没有定义N,但是会在整个代码中用10替换N。它可以用来命名常量。Typedef只能为已定义的类型提供新名称3.

俗野抹忆
2年前 (2022-07-06)

typedef和define的区别是:define是预处理编辑器,可以定义宏被替换的可能性,typedef由编辑器处理,遵循作用域规则,可以作为定义类型别名#define是一个c指令,也是定义各种类似typedef的数据类型的别名。但

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。