linux中的magic number是啥意思

Posted

tags:

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

reference number是啥意思

reference number
英[ˈrefrəns ˈnʌmbə] 美[ˈrɛfərəns ˈnʌmbɚ]
[词典] 参考数; 基准数; 参考号数; 引得号数;
[例句]Make a note of the reference number shown on the form.
把表格上的编码记下来。
参考技术A 编号

以上是关于linux中的magic number是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

magic number 在编程中是啥意思?

编程中的「魔数」(magic number)是什么意思?

magic number介绍

Oracle中的number(10,0)是啥意思

Oracle NUMBER 数据类型中的精度和小数位数是啥意思

flash as3.0中的arguments是啥意思