免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3988 | 回复: 14
打印 上一主题 下一主题

[注意]C每日一贴(一) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2002-10-31 11:07 |只看该作者 |倒序浏览
1.文件结构:
     /* Copyright (c) 2002 北京UBI公司
      * All rights reserved
      *
      * 文件名称:lud.c
      * 摘    要:处理字符串
      * 版    本:2.1
      *作    者:ludejun
      *完成日期:2002/01/01
      *
      *取代版本:2.0
      *原    作:lud98
      *原作日期:2001/11/11
      */


      头文件分目录存放


      #ifndef GRAPHICS_H
      #define GRAPHICS_H   

      #include<math.h>;
      #include&quot;ludheader.h&quot;

      void Function()
      {

      }  


      class Box()
      {

      }

      #endif



2程序的版式:
A.空行:
声明之后,函数定义结束以后。
同一个函数体,逻辑关系不紧密的行之间。
B.代码行:
同一行代码只作一件事情。
If   for   while   do  自占一行,而且不管有多少语句,都加上{}
关键字之后留空格:
函数名之后不要留空格。
&quot;(&quot;向后紧跟;&quot;,&quot;&quot;)&quot;&quot;;&quot;向前紧跟,且紧跟出不留空格。
&quot;,&quot;之后留空格。
二元操作符的前后都需要有空格。
一元操作符前后不要空格如:~ ! ++ -- 等。
[ ]  .  ->; 三个复后前后不加空格。
C.对齐
{} 应该自占一行,而且位于同一列。并且和引用他们的语句左对齐。
{  后面的代码块在其右边数格处左对齐。

D.长行拆分:
最大的长度应在70~80个字符之间。
特别长的行:拆分缩进,把运算符放在前边。
E.修饰符:
* 和 &amp; 应靠近变量名称。     int  *x, y&#59;

F.注释:
注释不可选宾夺主。
代码清晰的时候,不加注释。
写代码,写注释;改代码,改注释。
注释应准确,易懂。不能写缩写。
位置:在被注释代码的上方和右方。
多重(欠套)循环,在段落的结束处加注释。

G.类的版式:
Private 类型的数据写在前边。
Public 函数在前,Private 函数在后。
3命名规则:
Microsoft 公司的&quot;匈牙利&quot;法:在变量,函数名中加入便于理解的前缀。
Int  ia, ib, ix&#59;
Float fa, fb, fd&#59;

采用英文组合。
Windows采用大小写混排。
Unix类的系统采用小写加下划线。
不要有仅仅是大小写不用的变量。
不要有名称完全一样的全局变量和局部变量。
变量名称尽量用名次或者形容词加名词。      
全局函数名称尽量用动词或者动词加名词。
禁!避免出现数字编号。
Windows程序的命名规则
类名,函数名用大写字母开头的单词组合而成。
变量,参数用小写字母开头的单词组合而成。
常量全用大写字母,用下划线分隔。
静态变量前缀加s_
尽少使用全局变量。如果需要,以g_ 开头。
类的数据成员前面加m_ 区别于数据函数的参数。
加上反映软件性质的前缀。如prd
Unix 应用程序的命名规则。
4表达式和基本语句。
A.加上括号以使运算的优先级鲜明。
B.复合表达式注意:
a.别台复杂。
b.禁止有多个用途(隐含用途。)
C.If语句
布尔与零值比较:  if(flag)  或者    if(!flag)
整型和零值比较:  if  (vlaue==1)    或者  if  (value!=1)
指针与零值比较:  if (p==NULL)    或者   if  (p != NULL)
实型和零值比较:  const float EPSINON = 0.000001
                  if ( (x >;= EPSINON) || ( x <= EPSINON) )
D.循环的效率
尽可能把最长的循环放到程序的最里层。
E.循环变量采用半开半闭的方法:
for (I = 0 &#59; I < N &#59; I++)
F.Switch 语句
别忘了break;
别忘了 default :break;
5常量
A.好处:
a.可读性;
b.避免多处来回书写的时候书写错误
c.改动容易。
B.Const和#define的比较。
Const有类型、可调试。完全取代Define常量。
C.常量定义规则:
a.需要公开的常量,放在头文件里;不需要公开的,放在定义文件的头。可以把不同模块的常量放到同一个文件中一边集成管理。
b.如果常量之间密切相关。应该在定义的时候来定义出来,而不应该分头去写。如 const float DIAMETER = RADIUS * 2
D.类中的常量;
整个类中都恒定的常量可以用枚举型的变量来定义;
class A
{
   enum { SIZEMAX = 100, SIZEMIN = 200}
   int Array[SIZEMIN]&#59;
}&#59;
但是有个弊端就是不能表示浮点数。
6函数设计
A.参数的规则:
a.书写要完整。不能只写类型不写参数名称。
b.对没有参数的函数,用void补充
c.参数命名要恰当,顺序要合理。                                              Void StrCopy(char *strSource ,  char *strDestination)
d.函数的参数个数需要控制,尽可能不大于5
e.禁止使用类型和数目不确定的函数参数。。
B.返回值的规则。
a.任何函数都需要有返回值。如果没有,则用void代替。
b.函数名字和返回值类型不要冲突。
c.当返回值是对象的时候,引用传递往往比值传递效率高。
C.函数内部实现的规则。
A.在入口处对参数的有效性进行检查。
B.在出口处对return值得有效性进行检查。
C.不要将return  int(x + y) 写成:int temp = x + y&#59;    return temp&#59;
D.构造建议:
a.功能单一,不要编制多种能的函数。
b.函数体的规模要小,尽量小于50行代码。
c.避免记忆功能,相同的输入相同的输出。即行为可预测性。
d.不仅仅要检查参数的有效性,其他途径进入函数体的文件句柄,全局变量等也要校验。
e.用于出错处理的返回值一定要清楚。让读者不容易忽视、误解错误信息。

Chinajiji 该用户已被删除
2 [报告]
发表于 2002-10-31 13:24 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
3 [报告]
发表于 2002-10-31 15:32 |只看该作者

[注意]C每日一贴(一)

都是高手,给我推荐两本c语言好书呀!我要精通C语言,我现在还是毛头小子

论坛徽章:
0
4 [报告]
发表于 2002-10-31 17:44 |只看该作者

[注意]C每日一贴(一)

不错!

论坛徽章:
0
5 [报告]
发表于 2002-10-31 20:00 |只看该作者

[注意]C每日一贴(一)

开发约定
还行,继续努力吧,

论坛徽章:
0
6 [报告]
发表于 2002-10-31 22:03 |只看该作者

[注意]C每日一贴(一)

太好了谢谢谢谢啊
但我想提一点意见.
每日一贴可能有点不妥.因为简单的就好,但如果有的会可能一天还消化不完,那就

论坛徽章:
0
7 [报告]
发表于 2002-11-01 12:57 |只看该作者

[注意]C每日一贴(一)

似曾相识啊!!??

论坛徽章:
0
8 [报告]
发表于 2002-11-01 13:38 |只看该作者

[注意]C每日一贴(一)

ludejun98  Chinajiji  
太感谢你们了!!!
希望像zglcl008一样的高手能发表些意见,让我们这些菜鸟学习学习
谢谢!!        

论坛徽章:
0
9 [报告]
发表于 2002-11-01 13:46 |只看该作者

[注意]C每日一贴(一)

class A
{
const int SIZEMAX = 100&#59;
const int SIZEMIN = 200&#59;
int Array[SIZEMIN]&#59;
}&#59;
老兄,这就是功底的问题。了。在A进行初始化的时候,系统找不到const,所以会报错。
Chinajiji 该用户已被删除
10 [报告]
发表于 2002-11-01 14:21 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP