C语言中 什么是"magic number"
发布网友
发布时间:2022-05-06 22:39
我来回答
共2个回答
热心网友
时间:2023-09-28 15:31
magic number有如下四种解释:
使用#define 定义的常量
在算法中以非显式的方式保存了关键信息的数字。(典型例子是哈希函数)
在文件头特定位置存放的表示文件类型的数据。
导致边界条件的输入。(例如Y2K问题)
第四种情况,所遇不多,在这里不加赘述。以下主要结合我在实际应用中遇到的一些例子来对前三种情况加以阐述。第一种情况最为普遍。以Linux内核代码为例,大量的头文件中,使用#define定义的常量随处可见。摘录一段代码供大家参考。
中文一般翻译为 魔数,或幻数
不好意思,我也是从百度搜来的
说一下我的理解吧,如#defind PI 3.14
PI就是magic numer
参考资料:百度
热心网友
时间:2023-09-28 15:32
个人理解,
"magic number"可顾名思义:魔法般突然出现意义不明的数字。
编程过程中按照需要往往会引入一些常数,
比如某个for语句需要十次循环,可能会出现i<10的写法,这个10就是突然出现意义不明的数字。
"magic number"的坏处:阅读程序的人往往无法理解为什么突然出现一个10,也有可能会将此处的10与出现在其他地方的带有不同意义的10混为一谈;或者在修改程序的时候容易导致多处的10需要修改。
所以为了避免"magic number"出现,经常在一开头就用#define 大写字母 常数 (例如:#defind PI 3.14)的格式给"magic number"取一个代号,使用时输入代号即可。方便读者理解和程序的修改。