首页 > 其他分享 >23.define宏定义和const的区别

23.define宏定义和const的区别

时间:2023-07-03 21:37:58浏览次数:41  
标签:常量 const 定义 23 编译 替换 define

编译阶段

  • define是在编译的预处理阶段起作用,而const是在编译、运行的时候起作用

安全性

  • define只做替换,不做类型检查和计算,也不求解,容易产生错误,一般最好加上一个大括号包含住全部的内容,要不然很容易出错
  • const常量有数据类型,编译器可以对其进行类型安全检查

内存占用

  • define只是将宏名称进行替换,在内存中会产生多份相同的备份。const在程序运行中只有一份备份,且可以执行常量折叠,能将复杂的的表达式计算出结果放入常量表
  • 宏替换发生在编译阶段之前,属于文本插入替换;const作用发生于编译过程中。
  • 宏不检查类型;const会检查数据类型。
  • 宏定义的数据没有分配内存空间,只是插入替换掉;const定义的变量只是值不能改变,但要分配内存空间。

标签:常量,const,定义,23,编译,替换,define
From: https://www.cnblogs.com/codemagiciant/p/17524116.html

相关文章

  • 25.C++的顶层const和底层const
    任意常量对象为顶层const,包括常量指针;指向常量的指针和声明const的引用都为底层const  顶层const(top-levelconst)表示指针本身是个常量int*constptr=&m;  此时指针不可以发生改变,但是指针所指向的对象值是可以改变的  底层const(low-levelconst)表示指针所指的对象是常量......
  • 20230701巴蜀暑期集训测试总结
    T1BS5463【NOI2018模拟7】xiz考场A了,猜的结论。求出每个位置上一个和他相同的数的距离,进行KMP。但是每个数在\(B\)中第一次出现的位置不好处理,就猜了个结论——KMP的两个循环中相等的判断方式相同就可以了(至今不知道是否一定是这样),改动一下两个数相等的判断就完了。详解T......
  • 2023.7.3
    早上一如既往地起来打了会儿游戏,然后出门和球友吃了早饭便去打了一会儿篮球,中午吃完饭看了一会儿java的习题,又买了一本JAVA的教材看了看上面的题,花了3个小时解决了一些简单的题后又出门打了会儿球,回家爽爽地洗了个澡,明天打算看看课外书。......
  • 20230703测试
    A我不打了,但是考场上没想起来排列stl怎么写,所以在下面打10遍next_permutationnext_permutationnext_permutationnext_permutationnext_permutationnext_permutationnext_permutationnext_permutationnext_permutationnext_permutationnext_permutation你可以数......
  • 2023年暑假集训总结/7.1
    6-26T1多米诺骨牌Hades与Dionysus在狂饮后玩起了多米诺骨牌的小游戏。现在桌上有n块多米诺骨牌,每块多米诺骨牌上半部分和下半部分上都有一个整数。每次翻转可让一块多米诺骨牌上下翻转,即上下部分数交换。Hades想让n块骨牌上半部分的数加起来是一个偶数,而Dionys......
  • [CCO 2023] Line Town
    场上有点降智……其实会了互不相同的sub就可以会第一个sub甚至正解的。题意给定一个序列\(a_i\),\(|a_i|\leq10^9\),每次可以选两个相邻元素\(\texttt{swap}\),然后将两个元素同时取反。问最少操作几次可以使数列不降。做法场上做法考虑\(|a_i|\)互不相同的部分分。我们......
  • 2023最新php goto完全解密系统程序
    PHPGOTO加密代码一度被认为是程序员的一大难题,但随着技术的不断进步,现在有了一款神奇的工具来解决这个问题。这款PHPGOTO解密工具拥有强大的功能,能够轻松解密和还原GOTO语句,让你的程序恢复到最初的状态。完整有效解密还原源码goto解密,基本做到免修复直接可用。Windows电脑版:https......
  • 2023年暑假集训总结/7.3
    2023年暑假集训总结/7.3预估成绩:100+50+40+20=210实际成绩:100+25+24+25=174T1房题意:有n个已知中心和长度且互不重合的区间,问有多少个长度为t的区间恰好与其中一个区间的一个端点相等,且不与所有区间重合思路&做法:签到题,注意到答案上界为2n,只需要依次枚举接在每个区间左右......
  • 2023.7.3
    ##输入带空格的字符串~~~c++1.#include<string.h>strings;getline(cin,s);2.#include<cstring>#include<stdio.h>chara[1024];gets(a);intlen=strlen(a);//得到数组的实际长度~~~##填充输入~~~javasetw(intn)//用来控制输出间隔//例:cout<<'s&......
  • Silhouette 2023.0.1 CE 影视后期ROTO跟踪抠像合成软件 支持AE/PR/达芬奇/VEGAS/OFX插
    Silhouette是一款被广泛应用于影视剧中Roto、抠像、擦威亚的特效合成辅助软件,正所谓术业有专攻,它就是为了应对这些脏活累活而诞生的。之前还有一款软件CommotionPro,但是已经停止开发,目前已经被这款Silhouette所替代,目前它也属于BorisFX家族的一员。软件下载Silhouette2023.......