问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

typedef和define区别

发布网友 发布时间:2023-07-19 11:48

我来回答

1个回答

热心网友 时间:2024-12-05 09:14

typedef和define都是替一个对象取一个别名,以此增强程序的可读性,区别如下:

(1)原理不同

#define是C语言中定义的语法,是预处理指令,在预处理时进行简单而机械的字符串替换,不作正确性检查,只有在编译已被展开的源程序时才会发现可能的错误并报错。

typedef是关键字,在编译时处理,有类型检查功能。它在自己的作用域内给一个已经存在的类型一个别名,但不能在一个函数定义里面使用typedef。用typedef定义数组、指针、结构等类型会带来很大的方便,不仅使程序书写简单,也使意义明确,增强可读性。

(2)功能不同

typedef用来定义类型的别名,起到类型易于记忆的功能。另一个功能是定义机器无关的类型。如定义一个REAL的浮点类型,在目标机器上它可以获得最高的精度:typedef long double REAL, 在不支持long double的机器上,看起来是这样的,typedef double REAL,在不支持double的机器上,是这样的,typedef float REAL

#define不只是可以为类型取别名,还可以定义常量、变量、编译开关等。

(3)作用域不同

#define没有作用域的*,只要是之前预定义过的宏,在以后的程序中都可以使用,而typedef有自己的作用域。

#define没有作用域的*,只要是之前预定义过的宏,在以后的程序中都可以使用。
而typedef有自己的作用域。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
在筋骨堂治疗腰椎间盘突出一个疗程后已有好转,隔了三、四天又疼上了... 美的3⃣️匹柜机空调为什么不制热是什么原因? 小票打印机不出字的原因及解决方法如何解决小票打印机无法打印字的问题... 电脑打单打印机出不了小票超市收银台电脑键盘怎么用 交易房屋如何分类 城市规划用途分类该怎么做 规划用途的分类 ...打火机散件设备公司 值得信赖么 ?是不是《骗子》皮包公司? 希望给予... 哈尔滨农垦太阳神打火机散件厂是否骗人 有没有人知道网上那些打火机加工的广告是不是真是可靠?做打火机反销... 8月份要去 南汇思博学院军训了,不知道那里如何,虽然军训3天。,但是还... 华为运动健康没有b2手环 以下句子翻译成英文是什么? 简述第二次工业革命的影响。 ... 有一句是我也免为其难这歌叫什么名字 锡锡贷审批中稳了吗 锡锡贷还清借不出来了 《勉为其难》在哪里可以听 谁有 李谷一 - 有一个美丽的地方mp3百度云网盘下载 民歌中国 花儿为什么这样红 艾尔肯 ...电脑,大家推荐一下,1500以内什么牌子的什么显卡比较好? 求 帕尔哈提 花儿为什么这样红MP3下载地址 1500左右的显卡哪款比较适合玩游戏??? 我想换个显卡不知道什么样的显卡好价格在1000 -1500元左右的专玩游戏... 现在的主流显卡都是什么.想换配置了.预算1500左右. 主要游戏用.玩些什... 想换个1500-2500元左右的显卡,主要是玩游戏录视频。求推荐! ...显卡想换不知道换什么的好 ? 求高手指点 1500¥以内的、、、_百度... 有1500。想换个好点的显卡,主要玩游戏。 包菜炒肉饼的做法步骤图,包菜炒肉饼怎么做 有谁知道半挂车如何计算转弯半径?如果提供计算软件最好?请简单明了_百... 上海思博职业技术学院是野鸡大学吗 c语言关于#define创建宏的 懂Windows编程的进 合肥那里可以买到旧门,旧床和便宜的马桶?那里找到人安装?因为毛坯房要... 合肥蒙城北路皇家花园到当涂路旧货市场怎么走 关于英语作文回顾课堂 唐家三少的神印王座好看吗? 别的作者写的神印王座好看吗 斗破苍穹和神印王座那个好看 当情人节和生日同一天代表什么 丁蕙第一幼儿园有新建园区吗 北部湾拖轮公司船员待遇 船员如果想在拖轮上做事的话需要什么要求 欧文8情人节有气垫吗 欧文8GS有没有气垫? 如何在二手工程机械网出售设备 建昌去喀左县温泉怎么走 建昌到喀左公营子怎么坐车 当孩子被孤立家长怎么开导 功率大的吹风机一定比功率小的吹干快吗