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语言
    +关注

    关注

    180

    文章

    7614

    浏览量

    137469
  • CONST
    +关注

    关注

    0

    文章

    45

    浏览量

    8180

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

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

收藏 人收藏

    相关推荐

    ADS1281是不是不能使用sync引脚进行同步?

    在时序图中sync信号从低到高,再置低,再置高;使用连续采样时sync常态高,是不是需要置低再置高,再置低再置高; 对于tcshd和tscsu的定义最小10ns,不监测fclk的情况下,这个时间没有办法控制,是不是不能使用s
    发表于 11-22 07:31

    揭秘贴片功率电感发烫究竟是不是烧坏了

    电子发烧友网站提供《揭秘贴片功率电感发烫究竟是不是烧坏了.docx》资料免费下载
    发表于 09-30 14:44 0次下载

    技术干货驿站 ▏深入理解C语言:掌握常量,让你的代码更加稳固高效!

    在C语言的世界中,常量是一种不可忽视的元素。无论你是在编写简单的代码,还是构建复杂的系统,常量都能为你的程序带来更高的稳定性和可靠性。在这篇文章中,我们将深入探讨C语言中的常量,从整数常量
    的头像 发表于 08-29 13:59 2994次阅读
    技术干货驿站 ▏深入理解C语言:掌握<b class='flag-5'>常量</b>,让你的代码更加稳固高效!

    __disable_irq()和__enable_irq()函数的具体定义

    前段时间一工程师向我咨询了一个问题,问我为什么他的MCU KEIL工程代码里没有找到__disable_irq() 和 __enable_irq()的具体定义是不是有问题。
    的头像 发表于 08-29 10:06 2959次阅读
    __disable_irq()和__enable_irq()函数的具体<b class='flag-5'>定义</b>

    谷景告诉你屏蔽绕线功率电感是不是感量越大性能越好

    谷景告诉你屏蔽绕线功率电感是不是感量越大性能越好 编辑:谷景电子 屏蔽绕线功率电感是一种普遍的电路电感元件,它对于电路运行的稳定性特别重要。而电感量作为屏蔽绕线功率电感的一个性能指标,也是我们在做
    的头像 发表于 06-10 18:48 583次阅读

    微波检测的关键物理常量是指

    微波检测是一种利用微波技术进行物理量测量的方法,广泛应用于通信、雷达、遥感等领域。在微波检测中,关键物理常量是指那些对测量结果有显著影响的物理量。本文将详细介绍微波检测的关键物理常量,并探讨它们在
    的头像 发表于 05-28 14:44 469次阅读

    STM32H750VB是不是无法支持SDRAM?

    我看了数据手册中管脚定义虽然有SDRAM的管脚但信号不全,所以咨询一下这款芯片是不是无法支持SDRAM?
    发表于 05-24 08:04

    STM8S使用STVD是不是要预定义 _CSMC_ ?若不定义对程序有什么影响?

    not found */ #endif 想咨询一下是不是使用STVD 要预定义 _CSMC_ ?若不定义对程序有什么影响? 使用IARforSTM8 要定义 __ICCSTM8__
    发表于 04-28 06:46

    LabVIEW里Ring自定义控件,其常量无法保持同步修改,如何解决

    时,其常量无法跟随变换。 如图所示,自定义常量可以修改成不同的映射关系,同样都是“CSP”这个名称,可以对应2或者8。 如果通过创建输入控件的方式,则“CSP”这个名称一定对应的是自定义
    发表于 04-24 11:20

    共模电感是不是感值越大越好

    电子发烧友网站提供《共模电感是不是感值越大越好.docx》资料免费下载
    发表于 03-29 14:38 2次下载

    STM32F407在const绝对定位数组后,复位后运行不正常是怎么回事?

    这个扇区后面再定义一个扇区,也就是再加一句const u8a[2] _attribute_((at(0x08040000))),这样,初始化的常量就会放在0x08040000这个扇区,那么再对0x08020000这个扇区进行擦除
    发表于 03-25 08:27

    一文看懂插件环形电感线圈究竟是不是随便绕的

    在插件环形电感线圈的制造过程中,绕线是非常重要的一个环节。插件环形电感线圈绕线看起来很容易的一个步骤,但对于插件环形电感线圈的性能却有着特被重要的影响。那么,你觉得插件环形电感线圈绕线是不是可以随便绕制呢?
    的头像 发表于 03-12 19:19 1744次阅读
    一文看懂插件环形电感线圈究竟<b class='flag-5'>是不是</b>随便绕的

    浪涌保护器安培是不是越大越好?

    浪涌保护器安培是不是越大越好? 浪涌保护器是一种用于保护电子设备免受电力系统中的浪涌电流或电压峰值的装置。它们能够将过高的电压或电流引导到地线,并确保设备的正常运行。然而,浪涌保护器的安培值并不总是
    的头像 发表于 02-05 14:55 1682次阅读

    浪涌电流是不是启动电流?

    浪涌电流是不是启动电流? 浪涌电流不是启动电流。浪涌电流是指在电器设备开关或连接电源时的瞬时电流峰值。启动电流是指电动机或其他大功率设备在启动时需要的电流。 当电器设备启动或重新连接到电源时,通常会
    的头像 发表于 02-05 14:55 1355次阅读

    请问如何防止tasking将const变量合并?

    编译中发现tasking将const变量值相同的变量合并了,先去掉一些优化选项还是不起作用,只能改变const变量的值,是不是有什么编译选项可以去掉这个优化或者功能?
    发表于 02-02 08:07