社区
C语言
帖子详情
关于宏
向良玉
2009-03-26 07:49:48
#define n 10
int num[n];
与
int n=10;
int num[n];
有什么区别???
...全文
132
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下能有下面的那种写法?
Clojure实战入门指南
本书系统讲解Clojure核心概念与实战应用,涵盖集合操作、
宏
、并发、数据库交互及Web开发。通过REPL驱动学习,结合真实案例,帮助读者掌握函数式编程思维,构建完整Clojure全栈应用,适合希望深入Lisp系语言与JVM生态的开发者。
C++编码规范.
C++编码规范.陈世忠
changelog-beta:Macro beta应用程序的公共变更日志
宏
Beta Macro beta应用程序的变更日志和版本 安装 新用户 在安装最新的beta .dmg。 现有用户 安装后,Macro Beta会在发布较新版本时自动更新。 当前版本 当前变更日志 故障排除 如果您在运行最新版本的Macro时遇到问题,请尝试以下疑难解答步骤: 将“
宏
投注”应用程序拖到“垃圾箱”中,等待大约一分钟,然后清空垃圾箱。 这将为您提供一个干净的安装平台。 重新安装最新的beta .dmg文件。 在执行此步骤之前,请确保从计算机中删除Macro Beta! 通过单击菜单栏中的“
宏
”>“关于
宏
”,检查您正在运行的版本是否为当前版本。 如果您落后,请尝试步骤1和2。 贡献者 约翰·凯克 Ankith Harathi 罗西·米切姆(Rossi Meacham) 尼丁·拉吉尼坎特(Nitin Rajinikanth) 杰米·卡尔(Jamie Carr) 海姆
clusterProfiler功能富集分析[项目代码]
本文详细介绍了Y叔团队在Nature Protocols上发表的关于使用clusterProfiler包进行多组学数据功能富集分析的研究。文章通过三个具体示例,包括代谢组学和
宏
基因组学数据的功能富集分析、毛竹耐寒性相关转录因子分析以及单细胞转录组细胞类型注释,展示了clusterProfiler的强大功能。重点讲解了ORA和GSEA算法的基本步骤,以及如何在
宏
基因组和代谢组数据中应用这些方法进行差异分析和功能富集。此外,文章还提供了详细的R代码示例和数据处理流程,帮助研究者快速上手并进行个性化分析。
基因组完整度分析工具[项目代码]
本文介绍了三种用于基因组或MAG(
宏
基因组组装基因组)完整度分析的工具:BUSCO、CheckM2和CheckM。详细说明了每种工具的安装步骤和使用方法,包括数据库下载、环境配置和命令行操作。BUSCO适用于真核生物,CheckM2和CheckM则提供了不同的安装和运行方式,适用于不同的分析需求。文章为研究人员提供了实用的技术指南,帮助进行基因组质量评估。
C语言
70,040
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章