当前位置: 首页 > news >正文

c++--define和const

1,属性:

define 是一个预处理器指令,const是关键字。

2,作用

define用于宏定义,定义一段代码的替换文本;

const用于定义常量;

2,作用阶段:

define在预处理阶段被编译器处理,进行替换,const在编译阶段由编译器处理。

3, 作用域

预处理指令(如#define)不受C++作用域规则的限制。这意味着一旦定义了一个宏,它将从定义点开始对整个文件有效,直到遇到相应的#undef或者文件结束。const用于定义常量,变量是受c++语法限制作用域的。

#include <iostream>

void test_define(){
    #define NUM 100
}

int main(){
    std::cout<<"main="<<NUM<<std::endl;
    return 0;
}

4,类型检查

由于#define执行的是简单的文本替换,因此没有类型安全的概念。这可能导致一些不易察觉的错误。const定义的常量具有明确的类型,因此编译器可以在编译期间进行类型检查。

5,使用上

define语句不需要分号,const需要分号。

6,内存上

宏定义的内容在预处理阶段被用于宏替换,不占据内存,const用于定义变量,变量占据内存。


文章转载自:
http://autochthonic.zzyjnl.cn
http://atomic.zzyjnl.cn
http://allen.zzyjnl.cn
http://apellation.zzyjnl.cn
http://assizes.zzyjnl.cn
http://barbel.zzyjnl.cn
http://bushmanship.zzyjnl.cn
http://acnode.zzyjnl.cn
http://chabuk.zzyjnl.cn
http://agreed.zzyjnl.cn
http://basilica.zzyjnl.cn
http://cdp.zzyjnl.cn
http://anthophagous.zzyjnl.cn
http://basutoland.zzyjnl.cn
http://burnable.zzyjnl.cn
http://algate.zzyjnl.cn
http://assiduity.zzyjnl.cn
http://apollinian.zzyjnl.cn
http://aberglaube.zzyjnl.cn
http://biochemic.zzyjnl.cn
http://admonitory.zzyjnl.cn
http://brumous.zzyjnl.cn
http://aristocrat.zzyjnl.cn
http://campanero.zzyjnl.cn
http://biosensor.zzyjnl.cn
http://chiquita.zzyjnl.cn
http://beerhouse.zzyjnl.cn
http://analytics.zzyjnl.cn
http://bight.zzyjnl.cn
http://aridity.zzyjnl.cn
http://www.dtcms.com/a/19145.html

相关文章:

  • 日志2025.2.15
  • B. Olya and Game with Arrays
  • LDR6500 PD芯片:智能充电与数据传输
  • CAS单点登录(第7版)3.安装
  • 家里WiFi信号穿墙后信号太差怎么处理?
  • 【愚公系列】《Python网络爬虫从入门到精通》012-字符串处理
  • 「软件设计模式」装饰者模式(Decorator)
  • SpringBoot 与 SpringCloud的版本对应详细版
  • 3-初始化项目
  • GMSL 实例1:当 MAX96717 遇上 MAX96724,打通 Camera 视频数据传输
  • 【设计模式】【行为型模式】解释器模式(Interpreter)
  • Golang 的字符编码与 regexp
  • 论文设置页码
  • 【PCIe XDMA开发】主机相关设置
  • 【JavaEE进阶】验证码案例
  • 滚动弹幕JS
  • 阿里云视频点播,基于thinkphp8上传视频
  • 性能测试流程、主流性能工具
  • Golang internals
  • Gateway中的Filter机制
  • 友好的教育
  • Golang并发编程最佳实践:协程与通道
  • SQLMesh 系列教程4- 详解模型特点及模型类型
  • 反向迭代器(reverse_iterator)的模拟实现
  • 关于视频去水印的一点尝试
  • centos docker ngnix
  • JavaScript内置对象
  • 在IDEA中误操作Git Rollback后的恢复方法
  • word分栏使得最后一页内容自动平衡
  • 【计算机网络】数据链路层数据帧(Frame)格式