const与define的区别与优点

【日常小结】项目Modbus RTU 协议 Modbus RTU(远程终端) 协议 一、前言 最近因为码跺宽度测量项目推广升级,更换了摄像头(换成了基恩士摄像头)和光栅(换成了施莱格05LCM系列光栅),导致原来的程序用不了了,然而这个软件升级的任务落到了我身上,作为机械非科班出身的我要学习TCP和Modbus RTU通信协议,也算是自我突破了。本文只对Modbus/RTU/HEX 进行简单的小结。 二、Modbus Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气Schneider Electric)于1979年为使用可编程逻 阅读详情

浅述:const用于类成员变量的定义,同时const本身就是一个语言结构,而 define是一个函数,const在编译的时候要比define快很多,所以建议,在能使用const中的场合就使用const

区别:

define:
(1)就起作用的阶段而言: #define是在编译的预处理阶段起作用,而const是在 编译、运行的时候起作用。
(2)就起作用的方式而言: #define只是简单的字符串替换,没有类型检查。而const有对应的数据类型,是要进行判断的,可以避免一些低级的错误。
(3)就存储方式而言:#define只是进行展开,有多少地方使用,就替换多少次,它定义的宏常量在内存中有若干个备份;const定义的只读变量在程序运行过程中只有一份备份。
(4)从代码调试的方便程度而言: const常量可以进行调试的,define是不能进行调试的,因为在预编译阶段就已经替换掉了。

使用过程中

const用于类成员变量的定义,只要一定义,不可修改。define 不可用于类成员变量的定义,但是可以用于全局变量。

const不能在条件语法中定义,而define可以,比如在if…else…中

const采用一个普通的常量名称,define可以采用表达式作为名称

const只能接受静态的标量,而define可以采用任何表表达式

const定义常量时大小写是敏感的,而define可通过第三个参数(true)来指定大小写是否敏感

const的优点

(1)const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查。而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误。
(2)有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试。
(3)const可节省空间,避免不必要的内存分配,提高效率

DSP复习笔记(5)——外部接口模块XINTF 【注意】 1. 芯片型号:TMS320F28335 2. 适用于NJUSTEO李彧晟老师课程 3. 参考资料:《TMS320F28335 DSP原理、开发及应用》 4. 对应PPT第二章 5. 本章内容较多而且较为重要,请结合PPT一起复习 阅读详情

相关推荐

企业和个人 AI 编程工具怎么选?2025 年 12 款主流工具(Claude/Cursor 等)核心能力 + 收费对比

2025 年最火的 12 款 AI 编程工具,像 Claude、Cursor 这些热门款,我把它们的核心能力、收费标准全扒得明明白白,看完这篇你不用再瞎琢磨,直接就能挑到对的!再说说 Cursor,美国 Cursor Labs 做的,还拿过红杉资本投资,2022 年推出后,2024 年收入直接涨了 6400%,势头很猛。总之,不管你是企业技术管理者、程序员,还是刚入门的 AI 小白,按自己的需求(语言、合规、预算)挑,保准能找到最适合的 AI 编程工具!最后给大家划重点,不同需求直接对号入座:?

hundred98的博客 2804

C++_7_const的一些使用

7 const 参考链接: const的用法,特别是用在函数前面与后面的区别! 没有学不会的 C++:logic constness 和 bitwise constness Advanced C++ – Logic Constness and Bitwise Constness 7.1 用const修饰函数的参数 参数作输出用,不论它是什么数据类型,也不论它采用“指针传递”还是“引用传递”,都不能加const修饰. const只能修饰输入参数: 如果输入参数采用**“指针传递”**,那么加const

雨落凡城的博客 293

ConvLSTM时空预测实战代码详解

ConvLSTM代码复现

JaysonWong的博客 1万+

Const的作用,Const与#define相比,有何优点?

Const的作用,Const与#define相比,有何优点?Const的作用Const与#define相比有什么优点 Const的作用 使用const关键字来声明变量,表明,内存被初始化后,程序便不能再对它进行修改。 即限定一个变量不允许被改变。 Const与#define相比有什么优点 1.const可以定义明确数据类型,而宏定义没有数据类型。 编译器会对const进行数据类型的安全检查,而宏定...

qq_40288591的博客 2591

Stable Diffusion跑图总爆显存?别急着换显卡,试试这个PYTORCH_CUDA_ALLOC_CONF参数调优

本文深入解析了Stable Diffusion运行中常见的显存不足问题,特别是由显存碎片化导致的假性OOM现象。通过详细讲解PYTORCH_CUDA_ALLOC_CONF参数中的max_split_size_mb设置技巧,提供了一套完整的显存优化方案,帮助用户在无需升级硬件的情况下显著提升AI绘画的稳定性与效率。

weixin_42524100的博客 347

最小二乘法(看完即会)

其中,X是数据矩阵,每一行是一个数据点,每一列是一个自变量(包括截距项),Y是观测值向量,β是待求的系数向量。为了找到使S最小的a和b的值,我们需要对S求关于a和b的偏导数,并令它们等于零。最小二乘法的数学公式通常用于线性回归问题,其中目标是找到一条直线(或更高维度的超平面),使得这条直线与给定数据点的误差平方和最小。同样地,通过求偏导数和令偏导数等于零,我们可以得到一个线性方程组,解这个方程组可以找到最优的b_0, b_1, …+ b_m*x_m,其中b_0是截距,b_1到b_m是各个自变量的系数。

qlkaicx的博客 2万+

const与define的比较

const与define 在C++中定义一个常量用const修饰,也可以用#define来定义,但是前者比后者更具有优点: const所修饰的常量可以具有类型,而宏常量没有数据类型。编译器可以对前者进行静态类型安全检查;而对后者只进行字符替换,没有类型安全检查,并且在字符替换的时候可能产生意料不到的错误。 集成开发环境可以对const常量进行调试,而不能对宏常量进行调试。 建议在C++程序中尽...

刘猿猿 417

MTK MT6833平台屏幕与TP驱动移植实战:从FAE伪代码到内核模块集成

本文详细介绍了在MTK MT6833平台上进行屏幕与TP驱动移植的完整实战流程。文章从解析供应商提供的初始化伪代码入手,逐步拆解了在LK阶段点亮屏幕、在内核层集成Panel驱动以支持休眠唤醒,以及移植并调试sitronix_ts触摸驱动的核心步骤与关键技巧,为嵌入式开发人员提供了从零到一集成新硬件的清晰指南。

rnn9storyteller的博客 442

const和define比较

1、编译器处理的时间段不一样。 define是宏,在预编译的时候就进行处理了,而const是在编译运行阶段使用。 2、类型和安全检查不同。 define宏没有类型,不做任何类型检查,仅仅是展开。const常量有具体的类型, 在编译阶段会执行类型检查。 3、const可以节省空间,避免不必要的内存分配。const定义常量从汇编的角度来看, 只给出了对应的内存地址,而不是象#define一...

qq_41804181的博客 1087

C/C++基础讲解(四十三)之图形篇之绘制直线、圆、圆弧、 椭圆

程序主要是基于Visual studio 2019进行编译完成了,有兴趣的小伙伴可以自己安装下Visual studio 2019,网上有现成的教程,当然了,如果有问题,也可以和我联系,这里我们主要讲解些源码实例,不多说了,言归正传。 C语言,做为学习其他语言的基础语言,其重要性就不言而喻了.下面我将和大家一起来学习探讨C语言的相关奥秘。 实例1:绘制直线 实例2:绘制圆 实例2:绘制圆弧 实例2:绘制椭圆

hnjzfwy的博客 1236

【WRF-Chem工具】anthro_emiss 详解:生成人为排放数据

anthro_emiss 详解:生成人为排放数据

WW、forever的博客 2056

C语言const 与#define 相⽐有何优点?

const 和#define 修饰的都是不可变的量,请说出⼆者相⽐有何优点?

致力于分享在各类技术领域的学习与实践经验,涵盖编程、虚拟化、开源工具、网络安全等。 954

使用 Simulink Real-Time 搭建一个完整的实时信号采集与滤波系统模型

本文详细介绍了基于Simulink Real-Time构建实时信号采集与滤波系统的完整流程。主要内容包括:系统配置(模型创建与参数设置)、信号采集模块搭建(模拟信号源或真实硬件连接)、实时滤波器设计(浮点/定点)、输出可视化(Scope/ToWorkspace等)、模型编译与下载到目标机、外部模式在线调试及数据保存方法。系统可实现微秒级实时信号处理,适用于工业控制、航空航天等对时间确定性要求高的场景。文章还提供了优化建议(多速率建模、优先级调度等)和应用场景说明,帮助读者快速掌握实时系统开发的核心技能。

amy_mhd的博客 304

const和define的区别以及const的优点

一、const和define的区别 (1)就起作用的阶段而言:#define是在编译的预处理阶段起作用(在预处理阶段进行替换),而const是在编译运行的时候起作用(const修饰的只读变量是在编译的时候确定其值) (2)就起作用的方式而言:#define只是简单的字符串替换,没有类型检查。而const有对应的类型,是要进行判断的,可以避免一些低级的错误 (3)就存储方式而言:#define...

Y~哈哈哈的博客 6321

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

const与define相比优点_const与#define的区别、优点

const与#define的区别编译器处理方式不同define宏是在预处理阶段展开。补充:预处理器根据以#开头的命令,修改原始的程序。比如我们常见的#include 命令告诉处理器读取系统头文件stdio.h的内容,并把它直接插入程序文本中。咱们的#define也是,仅仅是单纯的文本替换。const常量是编译运行阶段使用。类型和安全检查不同define宏没有数据类型,不做任何类型检查,仅仅是展开。...

weixin_30459905的博客 378

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

const与define相比优点_C语言编程中的const与define常量的区别与优劣

常量是固定值,在程序执行期间不会改变。这些固定的值,又叫做字面量。常量可以是任何的基本数据类型,比如整数常量、浮点常量、字符常量,或字符串字面值,也有枚举常量。常量就像是常规的变量,只不过常量的值在定义后不能进行修改。C语言中,常量有两种定义方式——宏常量和const常量宏常量所谓的宏,就是将某个无明确意义的值(例如,3.14159,知道的认为是圆周率,不知道的认为是某个奇怪的数字),定义为某个有...

weixin_33204898的博客 507

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

C语言 const 和 define 区别 - C语言零基础入门教程

目录 一.const 使用 1.const 修饰变量 2.const 修饰指针 3.const 修饰在函数名前面 4.const 修饰在函数名后面 5.const 修饰函数参数 二.define 使用 1.define 定义常量 2.define 定义函数 3.define 定义多行函数 4.define 防止头文件重复包含 三.const 和 define 区别 1.就起作用的阶段而言 2.就起作用的方式而言 3.就存储方式而言 4.从代码调试的方便程度而言 5.从效率程度而言 四.c

猿说编程 1636

static和const和define关键字比较

一般内存主要分为: 代码区、 常量区、 静态区(全局区)、 堆区、 栈区 这几个区域 大小端测试:数据在内存中存放,有大端模式和小端模式 小端模式(little-endian):低位字节存放在低地址上,高位字节存放在高地址上 大端模式(big-endian):低位字节存放在高地址上,高位字节存放在低地址上。 网络字节序:TCP/IP各层协议将字节序定义为Big-Endian, 因此TCP/IP协议中使用的字节序通常称之为网络字节序 static uint32_t m=0x87654321; char *p=

奋斗Andy的博客 456

const与define的异同

1. DEFINE是预处理指令,是简单的文字替换;而const是关键字,用于变量声明的修饰。 2. DEFINE替换的结果可以是数值、表达式、字符串、甚至是一个程序;而const只能限定变量为不可修改的常量,也就是说替换的结果只能是一个已经存在类型的值。 3. #define常量是一个Compile-Time概念,它的生命周期止于编译期:在实际程序中他只是一个常数、一个命令中的参数,没有实际的存在...

weixin_30675247的博客 81

C++中const理解

https://blog.csdn.net/u010278318/article/details/9368675 一、首先介绍const引入 1. C++有一个类型严格的编译系统,这使得C++程序的错误在编译阶段即可发现许多,从而使得出错率大为减少,因此,也成为了C++与C相比,有着突出优点的一个方面。 2. C中很常见的预处理指令 #define VariableName VariableValue 可以很方便地进行值替代,这种值替代至少在三个方面优点突出:

她依然向往着长岛的雪 202

突破编程_C++_面试( static 与 const )

c++ 面试基础知识

突破编程 1217

【C/C++学习笔记】const 和 static

1、修饰常量(局部变量或全局变量) const int temp1 = 1; //temp1为常量,不可变,必须设置初值 int const temp2 = 2; //temp2为常量,不可变 2、修饰指针 主要看const在*的前后,在前则指针指向的内容为常量,在后则指针本身为常量; const int *ptr; //*ptr为常量(ptr 为常量的指针)   int const *ptr; //*ptr为常量(ptr 为常量的指针)   int* const ptr; ...

hallyz的博客 263

c++笔记

struct与class区别 struct(c)class 有成员函数 默认权限 private (c++) struct 默认权限public 类模板 class 可以表示模板类型 struct 不可以 #ifndef STUDENT_H 防止重复定义 #define STUDENT_H #endif 域解析符 :: void student::set_age( ) 返回值 类名::函数名(参...

Penta_QQQ的博客 127

【C++---10】有参宏,无参宏,宏的优缺点

目录 1.宏格式: 2.无参宏详解: 3.宏和typedef: 4.有参宏详解: 5.无参宏说明: 6.有参宏说明: 7.宏的优点: 8.宏的缺点: 9.define与const的区别的简单总结: 1.宏格式: 每个#define行由三部分组成:第一部分是指令 #define 自身,“#”表示这是一条预处理命令,“define”为宏命令。 第二部分为宏,一般为缩略语,...

白小鱼的博客 1918

C++秋招记录(三)——细碎知识点

C++秋招记录(三)1、memory alignment and padding, 内存对齐的原理与意义2、typedef 和 define 有什么区别3、const(enum)与 #define 的比较 ,const有什么优点?4、const 有什么用途 细碎知识点 1、memory alignment and padding, 内存对齐的原理与意义 作用:结构体以及类成员对齐,意义就是减少cpu读取的次数,提高效率。 比如一个int变量长度为4个字节,cpu一次读4个字节,当然是一次读取比较好。但

babyzbb636的博客 230

宏定义

·源程序中允许用一个标识符来表示一串字符,称为宏·该标识符称为宏名,这串字符串称为宏的内容·宏定义用预处理语句#define完成·预编译处理的时候,对程序中所有的宏名直接用定义中的字符串去代替,称为宏展开·定义:#define PI 3.14159 //不用加分号,此处PI为字符串类型 #define f(x) x*x; //只能原封不动地代替 f(3+1)=>3+1...

weixin_30439131的博客 151
上一篇: cout不明确问题
下一篇: LeetCode 1《A + B 问题》
Andy in boots
博客等级 码龄7年 73粉丝 69原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值