【C语言】typedef 和define对比

【前言】        

typedef 和define都是给定义别名的关键字。通过他们我们可以对一些比较长的类型或语句进行缩短。

【概念】

        typedef关键字的作用范围主要限定在特定的数据类型上。通过typedef,我们可以为基本类型(如int、float)或自定义的结构体(typedef struct AA{ })、联合体等定义新的名称。这个新名称只在指定数据类型和作用域内有效,对其他类型不产生任何影响。

        相比之下,define是一种预处理指令,宏定义在整个代码中都有效。可以通过define来定义常量、函数替换宏、条件编译等,它的作用范围更为广泛。所有满足条件的宏定义在预处理阶段都会被替换为指定的文本,它更像是有一个替换的作用。

【代码演示】

关于typedef的代码

他的使用方法一般都是 typedef+类型+替换名+;一般是用在对类型的转换。

我们可以看到通过typedef替换类型的变量a和b的类型依然是int和unsigned int。这说明我们使用的typedef对变量的改变时无任何影响的。至于结构体student也是如此,通过typedef的使用我们可以简化结构体变量的定义,简化代码。

关于define的代码

define的使用方法是 define+命名+要替换的部分。这也是与typedef使用上的区别。

对define的使用,我们可以是一个数字、数据类型、甚至是可以是一个表达语句。在使用define后可以加(;)也可以不加(;),个人建议不加分割号因为如果用define替换的是一个数据类型的话就没法用了。下面开始就是拓展了……

【拓展】

我们都知道知道在C语言里是没有bool数据类型的,那么我们可以通过typedef和define来自行定义一个bool类型。

准备工作:

我们需要把源文件的后缀改成c的类型,如图:

接下来就是代码部分了,我们都知道,define可以替换各种语句或类型,而typedef又可以替换各种数据类型,而bool数据类型的一般使用方法的true=1;false=0。那么我们就可以使用下面的代码来自己创造一个bool类型。

接下来写一段代码来验证这个功能。

运行过后:

可以看到,完全没有问题。那么一定有小伙伴会有疑问,如果再使用int 定义变量时,是要用int呢还是用BOOL呢?这时会不会出错啊?我们一般可以理解为这个BOOL是一个别称,他的本质还是int型,他是不会影响原本的int类型的。就像你的同学给你起了个外号,但老师叫你时候依然是你的本名。

好的,这篇文章就到这里啦,感谢各位的观看。

  • 9
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值