苏嵌学习之枚举和宏

本文探讨了枚举和宏在编程中的使用。枚举提供了一种增强程序可读性的常量定义方式,虽然其本质类似int类型,但不支持算术运算,而宏定义在预编译阶段进行代码替换,不占内存。枚举常量是实体且有类型,而宏并非实体,无类型。枚举适合限制性输入,避免非法值,宏则可能引发重复定义或不易察觉的错误。建议尽量使用枚举代替宏定义整型变量,对于不同类型则可考虑const。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

枚举:

枚举是一种变量类型,枚举基本等效于int类型,占用同样的空间,同样的数值范围,但是枚举通常都是表示常数变量,对枚举变量做一些算术计算通常是编译器不允许的,但是可以加上强制类型转换,本来不在枚举符表里面的值也可以大摇大摆的登堂入室,枚举符表甚至允许数值相等。在没有赋值的引用中,只会是int范围内的垃圾数值,根本就不会是枚举符表中的数值。对于默认的情况,enum符表从0开始计数,除非用=赋值,否则就是前项的+1。使用枚举类型的最大好处是使得程序可读性增强!!

宏:

宏定义只是在程序的开头定义了一个字符常量它并不分配内存空间,所以根本不占用内存,它只是在程序预编译的时候,给常量赋一个固定的值,当程序中遇到这个字符常量时就会知道它就是预编译时被赋的那个值,代入运算就可以了,这个值在程序中是不能被改变的,只有在宏定义中才能改变,改变了之后,程序中所以出现此常量的地方都会改变,所以这就给写程序带来了方便,但宏永远仅仅只是编译器的代码替换功能,如果用的好却可以做出来那么华丽丽的效果,但要是用不好就是自己打自己的脸了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值