const 和宏定义的区别是什么

const 和宏定义的区别有:1、编译器处理方式不同;2、类型和安全检查不同;3、存储方式不同;4、const可以节省空间,避免不必要的内存分配;5、提高了效率。define宏是在预处理阶段展开,而const常量是编译运行阶段使用。

const 和宏定义的区别是什么-Worktile社区

1、编译器处理方式不同

define宏是在预处理阶段展开。

const常量是编译运行阶段使用。

2、类型和安全检查不同

define宏没有类型,不做任何类型检查,仅仅是展开。

const常量有具体的类型,在编译阶段会执行类型检查。

3、存储方式不同

define宏仅仅是展开,有多少地方使用,就展开多少次,不会分配内存。

const常量会在内存中分配(可以是堆中也可以是栈中)。

4、const可以节省空间,避免不必要的内存分配

const可以节省空间,避免不必要的内存分配

例如: 

#define PI 3.14159 //常量宏 

const doulbe Pi=3.14159; //此时并未将Pi放入ROM中 …… 

double i=Pi; //此时为Pi分配内存,以后不再分配! 

double I=PI; //编译期间进行宏替换,分配内存 

double j=Pi; //没有内存分配 

double J=PI; //再进行宏替换,又一次分配内存! 

const定义常量从汇编的角度来看,只是给出了对应的内存地址,而不是象#define一样给出的是立即数,所以,const定义的常量在程序运行过程中只有一份拷贝,而 #define定义的常量在内存中有若干个拷贝。

5、提高了效率

编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。

延伸阅读:

什么是const?

const是一个C语言(ANSI C)的关键字,具有着举足轻重的地位。它限定一个变量不允许被改变,产生静态作用。使用const在一定程度上可以提高程序的安全性和可靠性。另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一定帮助。另外CONST在其它编程语言中也有出现,例如Pascal、C++、PHP5、B#.net、HC08 C、C#等。

const修饰的数据类型是指常类型,常类型的变量或对象的值是不能被更新的。

const 推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。

文章标题:const 和宏定义的区别是什么,发布者:小编,转载请注明出处:https://worktile.com/kb/p/37349

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编认证作者
上一篇 2023年2月7日 下午10:10
下一篇 2023年2月7日 下午10:13

相关推荐

  • 什么软件记工时最好

    记工时软件有:1、Toggl;2、RescueTime;3、 Clockify;4、Everhour。Toggl是一款功能强大的在线工时记录软件,能够方便地记录员工的时间和任务。该软件提供了简单易用的界面,使您可以快速开始记录时间。您可以在Toggl内创建项目和任务,然后开始计时。 1、Toggl …

    2023年2月27日
    47400
  • python常见的库有哪些

    python常见的库有:1、Urllib3;2、Six;3、Botocore;4、pip;5、Pthon-dateutil;6、Requests;7、certifi。Urllib3 是 Python 的 HTTP 客户端,它提供了许多 Python 标准库没有的功能。 一、Urllib3 Urlli…

    2023年5月10日
    49900
  • oa系统传阅

    标题:OA系统传阅的实现及影响 办公自动化(OA)系统传阅为文件共享与管理提供了简便高效的解决方案。1.提升办公效率、2.确保信息安全、3.强化沟通协作、4.节约成本。该功能通过电子文档的方式取代传统的纸质文档流转,减少了物理寄送所需的时间和成本。提升办公效率表现在通过自动化的文件流转,实现快速传递…

    2024年1月12日
    15800
  • 如何配置MQTTBroker

    配置MQTT Broker需要遵循几个关键步骤:1、选择合适的MQTT Broker;2、安装所选的MQTT Broker;3、配置Broker的基本设置;4、确保安全性配置;5、设置持久性和会话;6、集成后端服务。 选择合适的MQTT Broker是首要任务,考虑到性能、兼容性、安全性及易用性。以…

    2024年1月5日
    19100
  • 如何避免协同办公环境中的信息过载

    在现代办公环境中,面对信息过载挑战,有效地管理和过滤信息变得至关重要。避免信息过载的关键在于采用策略性措施:1、优先级设置;2、使用信息过滤工具;3、实施电子邮件管理规则;4、制定会议议程;5、定期进行技能培训;6、鼓励开放沟通以及7、设定清晰目标。通过应用这些核心策略,团队成员能够更加集中注意力于…

    2023年11月20日
    21000
  • devops什么

    DEVOPS是什么? 在迈向技术前沿的道路上,DevOps展现了其不可或缺的价值。本质上,它是一种文化和实践的混合体,旨在促进软件开发(Dev)和信息技术运维(Ops)之间的协作与通信,从而实现快速高效地交付和迭代软件产品。核心观点围绕1、文化理念的变革、2、自动化流程、3、持续集成与持续部署、4、…

    2024年3月26日
    1200
  • 办公的oa系统

    标题:探索办公自动化(OA)系统的利与弊 摘要:办公自动化系统(OA)是企业信息化的一个重要分支,用于提高工作效率、优化流程管理。这类系统可能包含1、电子邮件,2、在线协作工具,3、文档管理,4、工作流自动化等模块。在详细描述中,工作流自动化指的是通过技术手段使得日常工作流程得到标准化和程序化,从而…

    2024年1月12日
    15600
  • hdmi和vga的区别

    本文将详细解析并比较两种常见的显示接口:HDMI和VGA。文章主要内容包括:1、定义和基本介绍;2、信号传输方式对比;3、画质和音频对比;4、使用环境与应用情景对比。目的是让读者更清楚地理解两种接口的特性和区别,从而在实际应用中作出明智的选择。 1、定义和基本介绍 HDMI,全称高清晰度多媒体接口(…

    2023年8月3日
    73500
  • 营销决策有哪些

    营销决策有:1、情感营销策略;2、体验营销策略;3、植入营销策略;4、口碑营销策略;5、事件营销策略;6、比附营销策略;7、饥饿营销策略;8、恐吓营销策略;9、会员营销策略。情感营销就是把消费者个人情感差异和需求作为企业品牌营销战略的核心。 1、情感营销策略 情感营销就是把消费者个人情感差异和需求作…

    2023年1月9日
    68500
  • 在线文档哪个网站好用

    好用的在线文档网站有:一、石墨文档;二、简道云;三、Coggle;四、金山文档;五、飞书。石墨文档是一款文档编辑软件,分享的文档支持多人实时协作。页面设计清清爽爽,没有太多花里胡哨的设计。 一、石墨文档 石墨文档是一款文档编辑软件,分享的文档支持多人实时协作。页面设计我也比较喜欢,清清爽爽,没有太多…

    2023年4月30日
    77100

发表回复

登录后才能评论
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部