magic number 在编程中是什么意思?

 我来答
十岛
2010-07-29 · TA获得超过8.6万个赞
知道顶级答主
回答量:8.9万
采纳率:95%
帮助的人:4.9亿
展开全部
magic number: 魔法数. 指不知道干什么的数. 没有说明来源/原因的数.
这样的数,我们纯看这一行代码,是无法判断其含义的。必须要去上下文中找,才能发现其具体意义。

这样的代码可读性不好。具体看《C语言陷阱》就好啦,祝你好运
MCE 中国
2025-07-22 广告
虚拟筛选 (Virtual Screening, VS)是基于小分子数据库开展的活性化合物筛选。利用小分子化合物与药物靶标间的分子对接运算,虚拟筛选可快速从几十至上百万分子中,遴选出具有成药性的活性化合物,大大降低实验筛选化合物数量,缩短研... 点击进入详情页
本回答由MCE 中国提供
hydonlee
2010-07-29 · TA获得超过590个赞
知道小有建树答主
回答量:859
采纳率:0%
帮助的人:480万
展开全部
magic number: 魔法数. 指不知道干什么的数. 没有说明来源/原因的数.

在编程中, 有点数字常量是我们经常会用到的. 比如: 255

char name[255];

请问这个255代表什么? 为什么是255而不是254?

再比如, 我们知道一个函数经常有返回值, 如:

int checkSomeThing(...){
if (...) return 0;
...
if (...) return 1;
...
if (...) return 2;
}
究竟, 0,1,2代表什么?

所以, 在编程中, 不要使用"magic number", 而是用常量/宏/枚举等代替.

如:
#define MAX_NAME_LEN 255 /*定义最大名字长度*/
...
char name[MAX_NAME_LEN];

这样还有一个好处是...如果这个长度要修改, 只要修改一下定义的地方就好了.

同样, 第二个例子可以修改为:

#define S_OK 0
#define S_INVALID_NAME 1
#define S_ERROR_PASSWD 2

int checkSomeThing(...){
if (...) return S_OK;
...
if (...) return S_INVALID_NAME;
...
if (...) return S_ERROR_PASSWD;
}

是不是好一些? 不知道这些在北大青鸟(等培训机构)会讲...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sos5403
2010-07-29 · TA获得超过462个赞
知道小有建树答主
回答量:351
采纳率:0%
帮助的人:307万
展开全部
magic number--魔数

实际上就是在程序代码中突然出现的数字。比如if(a<10)...

这样的数,我们纯看这一行代码,是无法判断其含义的。必须要去上下文中找,才能发现其具体意义。

这样的代码可读性不好。

应当用常量的形式定义,如:#define MAX_SIZE 10 或const int MAX_SIZE=5;

这个我们在用的时候,代码写为if(a<MAX_SIZE)。代码可读性就比较强。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tylr2005
2010-07-29 · TA获得超过184个赞
知道答主
回答量:303
采纳率:0%
帮助的人:112万
展开全部
前面两位回答的不准确
魔法数字是指在文件开头定义的一串数字,用于指明该文件的类型,
可参考《C语言陷阱》
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式