C++ 基础知识

本文详细对比了C/C++中const和#define的使用区别,包括它们的作用时间、内存占用、调试能力及重定义特性等,并提供了预防头文件重复引用的方法。

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

一、#define 和const 的区别

const

#define

定义的带类型的常量

定义常数,不带类型

带数据类型,进行判断,避免一些低级错误

简单的字符串替换,没有类型检查

(可能会导致边界效应)

在编译、运行时起作用

在编译预处理阶段起作用

占数据段空间

占代码段空间

可以调试

不能调试

预编译阶段就已经替换掉了

不能重定义

可以通过#undef 取消某个符号的定义,

再重新定义

不能

可以用来防止头文件重复引用

      

//边界效应
#define N 2+3 //我们预想的N值是5,我们这样使用N
double a = N/2;  //我们预想的a的值是2.5,可实际上a的值是3.5

     头文件重复引用的缺点:

  1. 增加了编译的工作量,降低编译效率;
  2. 有些头文件重复包含,会引起错误;
//主要把以下代码放在头文件中,可以防止头文件被重复引用
#ifndef xxx//如果没有定义xxx
#define xxx//定义xxx

//这里是你的代码

#endif //结束如果

 

啊啊

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值