社区
C语言
帖子详情
关于宏
向良玉
2009-03-26 07:49:48
#define n 10
int num[n];
与
int n=10;
int num[n];
有什么区别???
...全文
150
12
打赏
收藏
关于宏
#define n 10 int num[n]; 与 int n=10; int num[n]; 有什么区别???
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liqiong593664937
2009-03-27
打赏
举报
回复
第一个n是常量
第二个n是变量
AJrxin
2009-03-26
打赏
举报
回复
int n=10;
int num[n];
这样定义不可以的。
duoduo168
2009-03-26
打赏
举报
回复
宏为简单的文字替换,没有经过编译器类型检查的。变量可以由编译器检查类型。
aozhi
2009-03-26
打赏
举报
回复
在C89下
int n=10;
int num[n];
编译过不了。因为编译器根本不知道n是什么,无法为数组开辟空间。
#define n 10
int num[n];
再编译前,预处理器会把n替换成10,因此,可以编译通过。
预处理⇒编译⇒链接⇒执行
monster2002
2009-03-26
打赏
举报
回复
宏是在预编译的时候就由编译器进行替换,没有申请内存,n只是一个将被替换掉的标识。
而你声明变量编译器会在编译的时候为变量申请一块内存。
第一种写法是为了让自己的代码看着舒服(至少不会遭到鄙视),因为代码里直接出现数字比如 int array[10]就会降低代码的可读性,还会增加代码的维护难度,但你要是先#define ARRAY_SIZE 10 然后 int array[ARRAY_SIZE]看起来就好多了,另外声明宏一般都是大写,。
第二种写法完全没有意义,还不如 int array(10)。
hndth
2009-03-26
打赏
举报
回复
帮顶
ZM27080401
2009-03-26
打赏
举报
回复
如果程序中大量用到同一常量,并且这个常量偶尔会被修改,使用宏定义,那个就是变量了,这个就没什么好说的了
xidianxiancai
2009-03-26
打赏
举报
回复
int n=10;
int num[n];
不能放在一起用的吧。不能用一个变量值作为数组的维数的
Rain208
2009-03-26
打赏
举报
回复
一个是在编译期就已经确定下来的值-----常量 as const int n = 10;
一个在运行时才能确定的变量
xiaoyuer5222
2009-03-26
打赏
举报
回复
第二种定义,n为变量,不能初始化数组长度
#define n 10
int num[n];
与
int num[10]
没有什么区别,只是为了程序的可维护性
当需要更改数组大小时只需要改变宏定义中的大小,其余不用改变
malpower
2009-03-26
打赏
举报
回复
你这样想嘛,上面那个是常量,下面哪个是变量,这样想要好理解点.
ForestDB
2009-03-26
打赏
举报
回复
你确定C89下能有下面的那种写法?
记录日常使用的Helper文件
帮助类封装 提示:这里是自己开发中所用的封装类 例如:JSHelper封装 DBHelper封装 持续更新 (本人小白,不喜勿喷) 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 Hepler目录帮助类封装前言一、JSHelper是什么?二、使用步骤1.引入库2.创建jsHelper.js文件3 使用Jshelper.js实例 前言 提示:Helper类封装,把日常使用的代码进行封装,避免重复书写相同的代码 提示:以下是本篇文章正文内容,下面案例可供参考 一、JSHel
跟NAS斗智斗勇的个人文件整理日常(没写完)
机型:Synology NAS DS920+
OTP Helper用户案例:真实场景下的效率提升分析
OTP Helper是一款开源的OTP自动复制工具,能够从通知中自动提取并复制验证码,为用户在日常登录、支付验证等场景中节省大量时间。本文将通过真实用户案例,分析这款工具如何提升不同场景下的工作效率和用户体验。 ## 一、日常登录场景:告别手动输入验证码 在当今数字化时代,几乎所有应用和网站都采用了双因素认证(2FA),每次登录都需要输入手机收到的验证码。传统方式下,用户需要解锁手机、打开短信
G-Helper项目中的Windows事件日志频繁记录问题解析
G-Helper项目中的Windows事件日志频繁记录问题解析 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X...
如何快速修复华硕ROG笔记本色彩发白:G-Helper色彩配置文件恢复完整指南
当您的华硕ROG笔记本屏幕突然出现色彩异常、显示效果变差的问题时,这很可能是GameVisual色彩配置文件丢失导致的。本文将为您提供完整的诊断和修复方案,帮助您快速恢复最佳显示效果。G-Helper作为轻量级的Armoury Crate替代工具,不仅提供性能管理功能,还内置了智能色彩配置文件恢复机制。 ## 🔍 问题诊断:识别色彩配置文件丢失的典型症状 在开始修复之前,首先需要确认您的笔记
C语言
70,039
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章