typedef和define区别
作者:百变鹏仔日期:2023-08-06 04:58:37浏览:7分类:文字大全
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有自己的作用域。
可以使用的。
typedef相当于给原本的类型起了一个“别名”。
比如
typedef unsigned char U8;
这样用到U8的地方,就和直接使用unsigned char 相同了。
但是这只是给unsigned char增加了一个新的名字,并不是改名,原本的unsigned char还是可以继续用的。
不过,在同一个项目中,如果已经定义了新名字,就尽量不要使用原本的名字了,给代码的阅读和维护会带来麻烦。
鹏仔 微信 15129739599百科狗 baikegou.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!
- 上一篇:已经是第一篇了
- 下一篇:已经是最后一篇了
猜你还喜欢
- 04-26 “溪”组词有哪些词语?
- 04-26 观察的察怎么组词 察咋组词呢
- 04-26 剑字组词剑刃可以吗?还能组哪些词?
- 04-26 莫字该怎么组词
- 04-26 记组词有哪些
- 04-26 昂字组词
- 04-26 徽的组词和部首
- 04-26 裤子的裤的组词
- 04-26 涛的组词
- 04-26 混浊组词拼音
- 04-26 取出的取能组什么词?
- 04-26 耐的组词
- 搜索