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这行的定义,而不用在代码里逐个修改。