魔法数字(magic number)

什么叫魔法数字?

就是在写代码的时候,我们经常会使用到一些数字,或者是用来switch,或者是用来赋值,虽然我们自己知道这些数字代表什么,但是别人可能有所疑惑,这样造成程序的可读性变差,这就是魔法数字。

在程序开发中需要避免出现魔法数字

解决办法:使用枚举或者是宏定义,来诠释数字

1.枚举类型实质上就是一个整数,起作用就是来代替魔法数字

2.枚举类型中,指定第一个整数后,后面的数字会递增

时间: 2024-09-30 10:18:10

魔法数字(magic number)的相关文章

hdu 4323 Magic Number( DP )

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4323 Magic Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1728    Accepted Submission(s): 705 Problem Description There are many magic num

magic number介绍

magic number:魔数,这是放在linux的目录中的文件信息块中的一个标识符,一般只有几位,用来标识该文件是什么类型的文件,可以被什么样的应用使用.这个魔数不是固定的,有时候一个文件信息中的魔数可能会不断变化.这个东西不重要的,对用户造不成多少影响.两个例子:1.ELF文件的头部,前4个字节是魔数.这个常用于识别文件类型等.linux上,二进制的可执行文件的前四个字节是7f45,而在AIX上,二进制可执行文件的前四个字节是0x01df.2.内核程序中,给一些 IO 操作进行编号时,也会用

ZOJ 3622 Magic Number(数)

题意  假设一个正整数y满足  将随意正整数x放到y的左边得到的数z满足 z%y==0  那么这个数就是个Magic Number   给你一个范围  求这个范围内Magic Number的个数 令 l表示y的位数  ly=10^l  那么z=x*ly + y  要z%y==0   easy看出  仅仅需 x*ly%y==0 又由于x是随意的  所以一个Magic Number必须满足 ly%y==0 y<2^31  所以l最大为10 直接枚举l  找到全部符合的y即可了 当 ly%y==0  

Magic Number(Levenshtein distance算法)

Magic Number Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Status Practice HDU 4323 Description There are many magic numbers whose lengths are less than 10. Given some queries, each contains a single number, if t

ZOJ 3622 Magic Number 打表找规律

A - Magic Number Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu Submit Status Practice ZOJ 3622 Appoint description: Description A positive number y is called magic number if for every positive integer x it satisfies that

洛谷P1216 [USACO1.5]数字三角形 Number Triangles

P1216 [USACO1.5]数字三角形 Number Triangles 题目描述 观察下面的数字金字塔. 写一个程序来查找从最高点到底部任意处结束的路径,使路径经过数字的和最大.每一步可以走到左下方的点也可以到达右下方的点. 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 在上面的样例中,从7 到 3 到 8 到 7 到 5 的路径产生了最大 输入输出格式 输入格式: 第一个行包含 R(1<= R<=1000) ,表示行的数目. 后面每行为这个数字金字塔特定行包含的整数. 所

resize2fs: Bad magic number in super-block while trying to open

I am trying to resize a logical volume on CentOS7 but am running into the following error: resize2fs 1.42.9 (28-Dec-2013) resize2fs: Bad magic number in super-block while trying to open /dev/mapper/centos-root Couldn't find valid filesystem superbloc

UI控件tag属性和魔法数字的处理

说明:tag属性有很大的用处,它就好像每个UI控件的id,当多个按钮指向同一个监听方法时,可以给方法带参数UIButton,然后根据不同的tag值 来判断执行哪个按钮的监听事件: - (IBAction)up:(UIButton *)sender // 该方法有四个btn指向,tag值是下边的,即可根据不同tag值执行相应的代码 { //upMoveTag的tag是10 //bottomMoveTag:11 //leftMoveTag:12 //rightMoveTag:13 CGRect re

写规范代码的意义------去除魔法数字

毕业后,我导师跟我说,写代码不要用魔法数字,不要用魔法数字.最初只是知道,并没有深切的体验.随着写代码多了,就有体会了. 毕业出来了,从最开始一拿到需求就忙着开发,但现在拿到需求,看看需求有什么漏洞,然后罗列出需求的业务逻辑.实现常用功能基本没有技术障碍了.也知道写个好代码是那么难,那么有意义.很经常看到这样的代码. String name="xiaoming"; if(name.equals("xiaoming")){ System.out.println(nam