欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

给数字加上注解

程序员文章站 2022-04-27 18:50:15
...

说明

  • 数字无法表明其自身的含义,只有字符串能够表示,例如:源程序中的一些具体的数据,除了代码的作者之外,其他人可能根本不知道这些数据的含义是什么,有人把这些具体的数据称为幻数/魔数,幻数/魔数的存在会影响代码的可读性。

处理方式

  1. 简单,独立的使用,例如:
* 变量定义
int a = 1;
* 判断
if (a > 1)

* 这些情况下通常会利用宏定义来代替这些幻数/魔数,例如:
定义:#define MAX 1
使用:a = MAX;  if (a > MAX)
  1. 数组使用,例如:
* GUI编程需要定义5个按键,Class,Pop,.... 
定义:button[5];
使用:button[0].txt = ""; button[1].txt = "";

* 这种写法不灵活,并且使用时容易弄混,如果需要交换一下,改动起来要非常细心;可以使用枚举来优化,如果还有额外的信息,可以通过数组或者map进行映射,button的txt属性都不同,改善如下:
enum ButtonItem{
    Min = -1,
    Class,
    Pop,
    ....,
    Max,
}

char **ButtonTxt[Max - Min] = {
    "Class",
    "Pop",
    ....,
}

定义:button[Max - Min];
使用:
1. 通用的设置可以通过遍历实现
for (i = (ButtonItem)0; i < Max; i++) 
    button[i].color = ""; 
    button[i].txt = ButtonTxt[i]; 
2. 不通用的设置可以单独设置    
button[Class].txt = "";

* 注意点:
1. 枚举中的Min和Max是额外添加的范围界定标示,从而能够实现枚举的遍历。
2. 枚举项的值不能手动改变,因为需要连续,遍历时才不会出错。
相关标签: # 代码风格