typedef和define的区别

本文详细比较了C语言中的typedef与宏定义,包括它们的类型不同、处理阶段、功能差异、作用域以及在指针操作上的区别。typedef用于类型重定义,有类型检查,而宏定义在预处理阶段展开,无类型检查且全局可见。
摘要由CSDN通过智能技术生成

typedef:类型的重定义,可以对已有的类型重定义为新的类型名。

define:宏定义,是在预处理阶段进行展开,不会检查代码错误;在代码中使用的时候注意是单纯的替换(原样替换

详细解读:

1. 类型不同

在C语言中

typedef 是关键字,通常用来定义指针 、结构体等类型。

#define 是C预处理指令

2. 处理阶段不一样

typedef 在编译阶段处理。并且具有类型检查功能

#define 在预处理阶段进行简单的替换,不会进行类型检查

3. 功能不同

typedef 通常用于 类型定义,比如指针,数组,结构体等。方便记忆和使用。

#define 可以用于 变量定义,编译开关 ,变量和常量。

4. 作用域不同

typedef 具有自己的作用域

#define 没有作用域的限制,只要是之前预定义过的宏,在以后的程序中都可以使用。如果需要解除掉之前声明的宏定义 。

可以使用 #undef name,这个命令使预处理器忘记name的所有宏定义。

5 对指针的操作

二者修饰指针类型时,作用不同

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值