首页 > 其他分享 >10.define和const的区别

10.define和const的区别

时间:2023-07-23 10:12:27浏览次数:34  
标签:10 const 分配内存 内存 拷贝 替换 define

  • define生效于编译预处理阶段,const生效于编译阶段

  • define只是简单的字符串替换,在编译预处理阶段将所有用到宏的地方进行字符串替换,没有进行数据类型检查;const有数据类型,编译器要对其进行类型检查

  • define不分配内存,而const在静态区分配内存,因此define没有地址,不可以使用指针指向,const有地址可以使用指针指向

  • define不分配内存,只是将宏名进行替换,有多少次替换,内存中就有多少次拷贝(也就是给拷贝分配内存),内存消耗过大;const在静态区分配空间,内存只有一次拷贝

  • 不可以对宏常量进行调试,可以对const常量进行调试

标签:10,const,分配内存,内存,拷贝,替换,define
From: https://www.cnblogs.com/Sandals-little/p/17574716.html

相关文章

  • 滴滴太狠:分布式ID,如何达到1000Wqps?
    文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪......
  • 10道SpringBoot面试题
    SpringBoot我是JavaPub,专注于面试、副业,技术人的成长记录。以下是SpringBoot面试题,相信大家都会有种及眼熟又陌生的感觉、看过可能在短暂的面试后又马上忘记了。JavaPub在这里整理这些容易忘记的重点知识及解答,建议收藏,经常温习查阅。评论区见本系列《最少必要面试题》Sprin......
  • 安装Python310和Git
    安装Python3101.下载2.安装安装Git1.下载安装2.汉化GitBash2.汉化GitGUI本文写文时间2023年7月22日,可能在未来会不适合实际情况但是在写文时,不管是跑AI模型还是编译V8引擎,Python310都是稳定可用的安装Python3101.下载访问Python的下载页https://www.python.......
  • c语言_练习实例100
     题1:1.有 1、2、3、4 四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?#include<stdio.h>intmain(){for(inti=1;i<5;i++){//取百位for(intj=1;j<5;j++){//取十位for(intk=1;k<5;k++){//取个位if(i!=j&&j!......
  • mysql8 mariadb10.4 性能
    如何优化MySQL8和MariaDB10.4的性能简介在本文中,我将向你介绍如何优化MySQL8和MariaDB10.4数据库的性能。我们将通过一系列步骤来实现这一目标。下面是整个过程的概要表格:步骤操作1定位瓶颈2优化查询语句3使用索引4调整系统参数5数据库分......
  • 设备驱动-10.中断子系统-4.2中断线程化处理-workqueue
    1工作队列workqueue引入定时器、tasklet,它们都是在中断上下文中执行,它们无法休眠。那么如果一旦中断要处理耗时复杂的操作,就会显得很卡。那么使用内核线程来处理这些耗时的工作,那就可以解决系统卡顿的问题。Linux内核中工作队列workqueue就是线程化处理的一种方式,“工作队列”(......
  • CSS2.1规范笔记——10 视觉格式化模型细节
    视觉格式化模型细节包含块的定义元素(生成的)盒的位置有时候是根据一个特定的矩形计算的,叫做元素的包含块(containingblock)。元素包含块的定义如下:元素包含块其为根元素。其包含块是一个被称为初始包含块的矩形。对连续媒体,尺寸取自视口的尺寸,并且被固定在画布开......
  • [解题报告][CF1007E]Mini Metro
    Statement传送门有\(n\)个车站,从\(1\)到\(n\)编号,车站\(i\)初始有\(a_i\)个人。在每个小时结束的前几分钟,车站\(i\)会新增\(b_i\)个人。玩家有无限辆容量为\(k\)的火车。玩家在每个小时的中间(也就是\(\mathrm{30min,1h30min,2h30min...}\))可以让任意......
  • 黑魂210 获取左右手控制
    在ActorManager脚本里,新建一个GameObject变量叫model,对应值是ac.model新建一个WeaponManager变量叫wm,去获取model里的WeaponManager。 在Awake的wm下面加上条件:if(wm==null){wm=model.AddComponent<WeaponManager>();}wm.am=thi......
  • windows10 安装docker
    如何在Windows10上安装Docker简介在开始之前,我们需要确保你的电脑满足Docker的安装要求。接下来,我将为你提供一步一步的指导,教你如何在Windows10上安装Docker。以下是整个安装过程的步骤概览:步骤动作1检查系统要求2下载DockerDesktop安装程序3......