const常量与#define宏

本文详细阐述了宏定义和const变量在C++中的处理时间、内存分配、类型检查等方面的区别,帮助开发者理解两者在实际编程中的应用差异。

#define:宏定义语句在预处理阶段直接做文本替换,不做类型检查。

constC++中关键词,修饰常量

 

(1)处理时间不同

#define所定义的宏变量在预编译(预处理)的时候进行替换,const变量在编译时确定其值。

(2)对于const 变量,系统只在其定义时分配一段内存空间,而#define则是给出了一个立即数,不分配内存空间。因为const变量是存放在内存的静态区域中,所以在程序运行过程中const变量只有一个拷贝,而#define 所定义的宏变量却有多个拷贝,所以宏在程序运行过程中所消耗的内存要比const变量的大得多。

(3)const 对数据进行类型检查。const定义的常量具有数据类型,定义数据类型的常量便于编译器进行数据检查,使程序可能出现错误进行排查。#define 使用的是立即数,并没有明确指定这个量的类型。这容易带来一些问题。定义宏参数时需将参数()起来。而且调用时参数不应在宏中再做运算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值