Chinaunix首页 | 论坛 | 博客
  • 博客访问: 54553
  • 博文数量: 48
  • 博客积分: 2500
  • 博客等级: 少校
  • 技术积分: 430
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-24 11:02
文章分类

全部博文(48)

文章存档

2010年(33)

2009年(14)

2008年(1)

我的朋友
最近访客

分类:

2009-10-28 16:45:15

风格

1.1名字

全局变量使用具有说明性的名字,局部变量用短名字

       按常规方式使用的局部变量可以采用极短的名字。例如用i j作为循环变量,pq作为指针,st表示字符串等。

保持一致性

       相关的东西应该给相关的名字,以说明它们的关系和差异

函数采用动作性的名字

       函数名应当用动作性的动词,后面可以跟着名词。对返回布尔类型的函数命名,应该清楚地反映其返回值的情况例如:checkoctal(ch)就不如isoctal(ch)好。

 

1.2表达式和语句

使用表达式的自然形式

例如:if(!(block_id < actblks) || !(block_id >= unblocks))

改后:if(block_id >=actblks) || (block_di < unblocks))

用加括号的方式排除二义性

分解复杂的表达式

       例如:*x += (*xp=(2*k < (n-m) ? c[k+1]: d[k--]));

       改为:

       if(2*k < n-m)

              *xp = c[k+1];

       else

              *xp = d[k--];

       *x += *xp;

当心副作用

       ++之类的运算符在使用的时候要注意其副作用

 

1.3一致性和习惯用法

使用一致的缩排和加括号风格

       特定风格远没有一致地使用它们重要。

为了一致性,使用习惯用法

       循环的惯用法:

              for(i = 0; i < n; i++)

                     array[i] = i;

       链表的标准循环:

              for(p = list; p != NULL; p = p->next)

                     ………

       无穷循环:

              for(;;)                   或者              while(1)

       分配空间:

              p = malloc(strlen(buf) + 1);                

              strcpy(p, buf);

              //strlen求出的值没有计入串结尾的’\0’字符

else-if表达多路选择,case语句要有break配合使用。

 

1.4函数宏

避免使用函数宏

给宏的体和参数都加上括号

       例如:#define square(x) (x) * (x)

       改后:#define square(x) ((x) * (x))

 

1.5神秘的数

给神秘的数字起个名字

把数定义为常数,不要定义为宏

C++

       const int MAXROW = 24, MAXCOL = 80;

Java:

       static final int MAXROW = 24, MAXCOL = 80;

C:

       enum{MAXROW = 24, MAXCOL = 80};可以直接引用MAXROW

使用字符形式的常量,不要用整数

       for(c >= ‘A’ && c <= ‘Z’)

              …….

利用语言去计算对象的大小

       char buf[1024];

       fgets(buf, strlen(buf), stdin);

       定义数组的元素个数

       #define NELEMS(array) (sizeof(array) / sizeof(array[0])

       double dbuf[100]

       for(I = 0; I < NELEMS(dbuf); i++)

              ………

1.6注释

不要大谈明显的东西

给函数和全局数据加注释

不要注释差的代码,重写它

注释不要与代码矛盾,在更改代码后,记得更改注释

阅读(252) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~