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

const和#define的区别

对比项const(常量修饰符)#define(宏定义)
本质变量(有类型、有地址的只读变量)简单文本替换(预处理阶段替换,无类型)
处理阶段编译阶段(编译器处理)预处理阶段(预处理器处理)
数据类型有明确类型(int/char/float等)无类型,仅做字符串替换
内存分配占用内存空间(存储在数据段)不占用内存,替换后直接嵌入代码
作用域遵循 C 语言作用域规则局部:仅函数内全局:整个文件默认作用域为整个工程,可用#undef取消
类型检查有严格类型安全检查无类型检查,易引发隐式错误
能否调试可以被调试器识别、查看仅为替换文本,调试器无法识别
能否修饰指针 / 数组支持,可限定指针、数组等为只读不支持,仅能做简单替换
重复定义编译器会报错重复定义重复定义会覆盖,无报错
使用示例const int a = 10;#define PI 3.14
http://www.jsqmd.com/news/583049/

相关文章:

  • OpenClaw 从翻车到迎来上百项更新:MiniMax、腾讯、阿里、有道 8 位专家拆解OpenClaw本土化实战解法
  • 基于stm32单片机的智能导盲系统的设计与实现
  • AI医生实战入门到精通,吃透真实EHR看这篇就够了!
  • 从安装到界面实操:ABB RobotStudio 入门核心教程
  • Go语言内存模型与happens-before原则在并发程序中的实际影响
  • 揭秘:20万内数位和能被5整除的数(十六届蓝桥杯真题)
  • 如何用xianyu_spider实现高效电商数据采集?从入门到精通的完整指南
  • C++ 模板类型推断原理解析
  • 2K3000常见问题合集
  • sguard_limit:优化腾讯游戏反作弊系统资源占用的技术方案
  • 一次运算仅6.34阿焦,比忆阻器低百万倍!Nature子刊单分子神经形态器件深度解读
  • 09_KnowFlow企业安全层:RBAC权限控制、数据隔离与白标交付
  • 嵌入式软件开发中的柔性数组机制
  • 告别手动调Harness!Stanford 提出 Meta-Harness,自动找到最优“模型脚手架”
  • 建筑图像提取线稿
  • Comsol 5.4版弹性波三维能带计算案例:Smart Mater. Struct. 201...
  • 如何利用 SEO 工具提取网站的外部链接
  • GuwenBERT终极指南:如何用AI解锁古文自然语言处理能力
  • 天梯赛L2-006 树的遍历
  • 【OIDC】PKCE流程
  • Kali Linux 虚拟机安装与基础配置保姆级图文教程_虚拟机安装kali教程
  • OFA图像描述系统实战:快速搭建图片转文字工具,避免常见权限错误
  • 偏振不敏感 宽带消色差长波红外超构透镜模型 色散补偿设计 FDTD仿真 超表面 复现论文:20...
  • 长生露模式系统开发
  • 成本对比:OpenClaw调用自部署SecGPT-14B与商用API的实测数据
  • 用 AI 做鸿蒙游戏 NPC,是一种什么体验?
  • 20260403 找工作感受 - 枝-致
  • # 发散创新:基于Python与OpenCV的智能交通流量实时监测系统实现 在智慧城市建设浪潮中,**智能交通系统(ITS)*
  • 米哈游2026春招(附内推):刷了200题C++,一面还是被问倒了
  • 原神帧率解锁终极指南:三步轻松突破60FPS限制