宏定义 枚举类型 const之间的区别

本文详细介绍了C语言中宏定义、枚举类型和const关键字的区别,包括它们的处理过程、数据类型、定义数量、内存分配以及内存使用。宏定义在预编译时进行字符串替换,不分配内存;枚举常量在编译时确定并占用内存;const在编译阶段执行类型检查,占用内存且不可修改。

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

一.处理过程

1.宏定义:它是由编译处理器在预编译的时候处理的,在代码当中只做简单的字符串的替换(整体替换)

2.枚举类型:枚举常量在编译的时候就已经确定了它的值

3.const:它具有具体的类型,在编译阶段会执行类型检查,当试图修改该变量的时候,编译器会报错

二.数据类型

1.宏定义:可以处理任意的数据类型

2.枚举:只能处理整形(char也属于整形)

3.const:可以指定任意类型的数据为常量

三.定义数量

1.宏定义:一次只能定义一个

2.枚举:一次可以定义大量的常量

四.开辟空间

1.宏定义:它只是在程序的开头定义了一个字符常量,并不分配内存空间,因此根本不用占用内存。在预编译之后有变量调用这个宏时会开辟内存空间

2.枚举:枚举常量是要占用内存的,它在定义的时候需要开辟一段空间来存放定义的常量

3.const:在内存中分配,可以是堆中也可以是栈中

五.内存的使用

1.宏定义:宏每进行一次替换就需要分配一次内存空间,比较费内存

2.枚举:实质上是常数所占内存空间的大小(int型),枚举类型所占内存大小也是这样

3.const:const定义的常量从汇编的角度来看,只是给出了相对应的内存地址。因此,const在调用的时候只会分配一次内存地址



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值