0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

const定义的是不是常量

学益得智能硬件 来源:学益得智能硬件 2025-01-14 11:35 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

C语言是如何定义常量的?const定义的算不算是常量?

常见的有这么几种方式。

首先就是宏定义,使用 define 来定义。

宏的特点就是在预处理的时候被替换,比如这个地方的 SIZE,预处理后就会变成数字 5。

第二种跟宏定义类似,常量也可以在编译的时候通过编译器传入。

以 gcc 为例,编译的时候提供 -D 选项,同样会在预处理的时候替换成相应的数字。

第三种枚举,使用 enum 关键字。

枚举的特点是默认从 0 开始,逐渐递增。如果需要大量含义相同的常量,可以考虑使用枚举。

下面要说的就是 const,定义数组的时候,如果数组的长度仅仅用 const 来修饰,在编译的时候就会提示错误。

const修饰的不是常量,属于只读变量,这一点在《C专家编程》中也有描述。在一个符号前面加上 const 限定符只是表示这个符号不能被赋值。

为了解决这个问题,C23专门引入了新的关键字 constexpr,用 constexpr 修饰的才是真正的常量,不管是用它定义数组长度,还是给枚举赋值都可以。这是个正儿八经的常量。

除了上面几种,代码中常见的还有字符串常量,比如这样的,"helloworld"属于字符串常量,在代码运行过程中不能修改。

还有没有其他定义常量的方法,如果有遗漏,欢迎大家在评论区补充。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    183

    文章

    7642

    浏览量

    144619
  • CONST
    +关注

    关注

    0

    文章

    45

    浏览量

    8683

原文标题:const定义的是不是常量

文章出处:【微信号:学益得智能硬件,微信公众号:学益得智能硬件】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    cw32L系列是不是用不了JTAG?只是用SWD接口?

    cw32L系列是不是用不了JTAG?只是用SWD接口?
    发表于 12-08 06:21

    请问CW32系列芯片是不是没有带网口的型号?

    CW32系列芯片是不是没有带网口的型号?
    发表于 12-05 06:52

    想用DMA+uart同时访问串口2和3是不是不可以?

    想用DMA+uart同时访问串口2和3是不是不可以?
    发表于 12-05 06:19

    请问IR 调制器是不是复用串口的啊?

    请问,IR 调制器是不是复用串口的啊?
    发表于 11-26 06:36

    C语言的常量介绍

    定义,其一般形式为 #define 标识符 常量值 #include #define POCKETMONEY 10 //定义常量常量
    发表于 11-24 07:12

    芯源MCU架构是不是基本都是ARM架构?还有其他的架构吗?

    芯源MCU架构是不是基本都是ARM架构?还有其他的架构吗?
    发表于 11-20 06:21

    芯源的MCU是不是基本都是宽压输入?宽电压对整体功耗有影响吗?

    关于芯源电源电压问题,芯源的MCU是不是基本都是宽压输入?宽电压对整体功耗有影响吗?
    发表于 11-18 07:26

    光纤跳线是不是就是尾纤

    光纤跳线和尾纤不是同一种东西,它们在多个方面存在明显区别: 定义与用途 光纤跳线 定义:光纤跳线也叫光纤连接器,是两端都带有连接器的光纤线缆,用于连接设备与设备、设备与光纤配线架等,实现光信号的传输
    的头像 发表于 06-18 09:58 712次阅读

    带你在单片机编程中熟练使用const(可下载)

    在 C 语言关键字中 const 举足轻重,我们今天就深度聊一聊 const定义和实际应用,让它 不再是迷C 语言中 const 关键字是 constant 的缩写,是恒定不变的意
    发表于 04-01 14:18 3次下载

    AMC1200取样电路是不是可以不要差分?

    AMC1200,取样电路是不是可以不要差分?
    发表于 02-08 07:30

    SN65HVS880是不是在CLK的上升沿发送数据出去的?

    1)上面SN65HVS880 时序图,有点不太明白,为什么SOP的第一位IP7在使能信号CE变为低电平时就被传送出去了,而且下面写着inhibit,是不是说IP7是被抑制 掉了,因为我在用
    发表于 01-24 06:40

    非屏蔽网线对接头是不是不是屏蔽的

    非屏蔽网线是在不具有强干扰环境下使用的,具有一定的抗干扰能力,因此可以满足日常较弱干扰情况下的正常使用需求。其网线内部没有额外的屏蔽层来抵御外部电磁干扰,价格相对较低,安装也较为简单。
    的头像 发表于 01-07 15:45 1096次阅读

    LMP91200在不使用SPI接口时,CSB是不是仍旧必须接地?

    我在使用LMP91200时遇到几个疑问,麻烦指点一下,谢谢。问题如下: 1、LMP91200的SPI接口是不是仅用作配置LMP91200的一些寄存器参数,如果我使用默认配置,是不是就可以不使
    发表于 12-27 08:45

    求助,以下电流和电压的测量的原理图是不是正确的?

    我想问一下,我这种电流和电压的测量的原理图是不是正确的,另外我想测试1UA左右的小电流,用此图可以不,如果不正确,如何设计,有没有参考图给我。谢谢。
    发表于 12-25 08:35

    DS90UH系列和DS90UB系列是不是不兼容?

    针对FPD-LINK搭配有以下问题想咨询: DS90UH系列和DS90UB系列是不是不兼容,是不是必须DS90UB对应DS90UB系列,DS90UH系列必须对应DS90UH系列?
    发表于 12-09 06:47