请教下,#define和typedef的区别

2020-01-25 15:37发布

怎么我感觉功能都差不多嘛,多数时候可以相互替代?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
laujc
1楼-- · 2020-01-25 20:31
不写非常复杂,而且有指针神马的代码,肯定可以通用...

比较杯具的是source insight不能识别出由typedef定义的类型来定义的变量,
所以我写代码就用define居多.
renwocai
2楼-- · 2020-01-26 01:09
书上写的#define是预处理命令,只占用编译时间,那么typedef是神马情况?
kebaojun305
3楼-- · 2020-01-26 04:59
 精彩回答 2  元偷偷看……
dr2001
4楼-- · 2020-01-26 06:09
如果正确使用的话,define和typedef是效果上是类似的。

define工作在预处理阶段,是机械的直接展开;typedef是编译阶段的工作。

define因为没有语义,只是机械展开,所以容易出错。typedef相对安全一些。
mandey
5楼-- · 2020-01-26 09:44
typedef是定义了一种类型
define只是简单的替换
yummo
6楼-- · 2020-01-26 11:52
我是这样理解的,#define  换包装    (其实是一样的东西,在预处理时进行)
                        typedef  就是起别名(就是一个代号,在编译时进行)

一周热门 更多>