当前位置: 首页 > news >正文

C语言中的常量与只读变量,#define与const的区别

#include中的#表明C处理器需要在编译器接手工作之前先处理这条指令。
#define 这条定义宏的语句,是不是很熟悉,这条预处理指令会在编译器编译前把源文件中使用到这个宏的地方都先展开。

  • #define NUM 12 这个定义了一个宏常量,它的处理发生编译阶段。
  • const int num = 15; 这个将变量num限制为只读,它的处理发生在程序运行时。

因为它们的值都不能够改变,都是它们的意义却是不同的。

#define LEN 100
const int TOTAL = 200;
int main(){
	int a[LEN]; // 正确
	int b[TOTAL]; // 错误 
}

代码在编译时就需要确定好数组的长度,所以只能用#define定义的宏常量,const的作用是限制变量为只读,它的值只有在运行时才能够确定,因此用const的变量来指定数组长度会报错。

相关文章:

  • CUDA-计算内存事务的次数
  • Xmind 2024安装教程超详细(小白零基础入门)图文教程【附安装包】
  • ffmpeg学习:ubuntu下编译Android版ffmpeg-kit
  • Windows搭建CUDA大模型Docker环境
  • AMESim中批处理功能的应用
  • Java类与类的关系
  • 【Hadoop】大数据权限管理工具Ranger2.1.0编译
  • 【人工智能】释放数据潜能:使用Featuretools进行自动化特征工程
  • Android Studio - Android Studio 查看项目的 Android SDK 版本(4 种方式)
  • 八、OSG学习笔记-
  • spring cloud 微服务部署(2025年)第四章:Nacos、LoadBalancer、GateWay、Ribbon集成之跨服务调用ribbon
  • 【CSS进阶】CSS元素的水平、垂直居中方法
  • C++ 实践扩展(Qt Creator 联动 Visual Studio 2022)
  • 【线段树模板】
  • 今日AI和商界事件(2025-02-15)
  • Halo 配置QQ邮箱验证教程
  • jenkins 配置ssh拉取gitlab
  • 基于nuScenes数据集和DeepSeek模型的端到端自动驾驶解决方案
  • 文件夹上传到github分支最后github上面还是没有文件和文件夹
  • 3.从零开始学会Vue--{{生命周期,工程化,组件化}}
  • 中方发布会:中美经贸高层会谈取得了实质性进展,达成了重要共识
  • 法院就“行人相撞案”道歉:执法公正,普法莫拉开“距离”
  • 重庆三峡学院回应“85万元中标设备,网购价不到300元”:已着手解决
  • 中美经贸高层会谈11日在日内瓦将继续进行
  • 中国社科院:网文市场超430亿元,作者破3000万人
  • 人民日报刊文:守护“技术进步须服务于人性温暖”的文明底线