magic number 是什么?C语言

magic number有如下四种解释:

使用#define 定义的常量

在算法中以非显式的方式保存了关键信息的数字。(典型例子是哈希函数)

在文件头特定位置存放的表示文件类型的数据。

导致边界条件的输入。(例如Y2K问题)

第四种情况,所遇不多,在这里不加赘述。以下主要结合我在实际应用中遇到的一些例子来对前三种情况加以阐述。第一种情况最为普遍。以Linux内核代码为例,大量的头文件中,使用#define定义的常量随处可见。摘录一段代码供大家参考。

中文一般翻译为 魔数,或幻数