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这行的定义,而不用在代码里逐个修改。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-08-11
我自己的认识是,magic number也就是魔数,一般是一个用来和其他同类数据进行区别的方式。
两个例子:
1.ELF文件的头部,前4个字节是魔数。这个常用于识别文件类型等。linux上,二进制的可执行文件的前四个字节是7f45,而在AIX上,二进制可执行文件的前四个字节是0x01df。
2.内核程序中,给一些 IO 操作进行编号时,也会用到模数,专门有一个宏定义会根据你给出的模数和简单编号,生成新的编号,这个编号在内部使用,它会保证不会出现重复的情况。本回答被提问者采纳
第2个回答  2011-09-29
魔数,这是放在linux的目录中的文件信息块中的一个标识符,一般只有几位,用来标识该文件是什么类型的文件,可以被什么样的应用使用。这个魔数不是固定的,有时候一个文件信息中的魔数可能会不断变化。
这个东西不重要的,对用户造不成多少影响。
第3个回答  2011-09-29
临界数!临界资源~
相似回答