linux中的magic number是什么意思
在程序开发中,magic number(魔术数字) 用来指代那些散布在代码中各处的有特别意义的数字,这样一来,当这个常数需要修改为别的值时,就不得不逐个在代码中搜索,当代码量大时,比较容易出错。一个好的编码习惯是,为这些数字定义一个常量标识,这样,当需要修改这个值时,就只需修改这个标识的定义,而不用去搜索代码中的数字一个个修改。
比如有这么一个程序:
main()
{
int data[6];
int i;
for (i = 0; i<6;i++) scanf("%d", &data[i]);
for (i = 0; i<6;i++) printf("%d ", data[i]);
}
这里的6就是一个magic number,它表示这个数组的长度,当它改变时,你就不得不同时去修改代码中的3个地方。
好的习惯是这样编码:
#define LEN 6
main()
{
int data[LEN];
int i;
for (i = 0; i<LEN;i++) scanf("%d", &data[i]);
for (i = 0; i<LEN;i++) printf("%d ", data[i]);
}
这样一来,当你要修改这个值时,你只需修改#define LEN 6这行的定义,而不用在代码里逐个修改。