C语言编程规范_第1页
C语言编程规范_第2页
C语言编程规范_第3页
C语言编程规范_第4页
C语言编程规范_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 C 语言编程规范 上海交通大学信息安全学院 1命名规则 1.1 类型命名规则 对于结构体类型,按照以下的方法进行定义和命名: typedef struct _类型描述 _t . 类型描述 _t; 例如: typedef struct _sem_t int i_sem_id; sem_t; 如果类型描述超过一个单词,则单词之间用下划线分开。 例如: typedef struct _map_node_t BOOL b_used; UINT32 i_id; void * p_data; map_node_t; 1.2 变量命名规则 对于基本类型的变量,采用如下的命名方法: 变量类型 _变量名 其中

2、基本变量类型定义如下: i :整型 c :字符型 s :字符数组类型,一般用于缓冲区的定义 sz :字符串型 p :指针型 b :布尔型 例如: int i_count; char * sBuffer; BOOL b_used; 如果某变量为全局变量,则需要在变量的头上加 g 。例如 int gi_listern_fd; 对于结构体类型,其变量类型命名如下: st_结构类型 _变量描述 例如: sem_t st_sem_lock; 请在变量名中使用下划线以分隔单词,坚持使用小写; 把大写字母留给宏 和枚举常量。 对于一些功能显而易见的变量, 如循环变量, 则可以使用简单的 i, j, k, t

3、emp 等变量名。 1.3 函数命名规则 在采用面向对象的方法时,大部分的函数与某结构体有着密切的联系。其关 系类似与“类-成员函数”的关系。对于此类函数,采用如下的命名法则:结构描述 _函数功能描述 ( 其中函数功能描述为一个动词或一个动宾结构。 例如: conn_create(; conn_get_id(; 对于一些不和某结构体密切联系的函数,则使用如下的命名法则: func_函数功能描述 ( 例如: func_handle_login_req( 2代码规范 2.1 缩进 使用 Tab 进行缩进,严禁使用空格缩进。 Tab 的长度为 4格。 以下情形应该缩进: 函数体开始的位置 条件、循环

4、、分支的执行部分 程序转行 2.2 函数长度 一般一个函数的长度在 20-50行之间比较适合。如果太长或太短则建议对 函数进行分割或合并。即使是特殊情况下,一个函数的长度也不要超过 200行。 2.3 局部变量 函数中局部变量的数目不应超过 5-10个。一般人脑可以同时处理 7个左右 不同的事情。超过这个数目则很容易出错。 2.4 大括号的位置 普通代码段 将开始的大括号放在一行的最后,而将结束大括号放在一行的第一位,如下 所示: if (x is true we do y 命名函数:开始的括号是放在下一行的第一位,如下: int function(int x body of function

5、 do-while 以及 if-else 需要注意的是结束的括号在它所占的那一行是空的, _除了 _它跟随着同一 条语句的继续符号。 如 while 在 do-while 循环中, 或者 else 在 if 语句中。 如下: do body of do-loop while (condition; 以及 if (x = y else if (x y . else 另外,注意到这种大括号的放置方法减小了空行的数量,但却没有减少可读 性。于是,在屏幕大小受到限制的时候,你就可以有更多的空行来写些注释了。 2.5 对齐方式 如果函数的参数不能被美观地放在一行中,按照下面的方式把它们分开: int l

6、ots_of_args (int an_integer, long a_long, short a_short, double a_double, float a_float 在左括号之前以及逗号之后添加空格将使程序更加容易阅读。尤其是在逗号 之后添加空格。 当我们把一个表达式分成多行的时候,在操作符之前而不是之后分割。 if (foo_this_is_long else lose (; 而总是要写: if (foo if (bar win (; else lose (; 尽力避免在 if 的条件中进行赋值。例如,不要写: if (foo = (char * malloc (sizeof *f

7、oo = 0 fatal (virtual memory exhausted; 而要写: foo = (char * malloc (sizeof *foo; if (foo = 0 fatal (virtual memory exhausted; 3注释规范 3.1 文件头 每个文件必须有一个文件头注释,大致说明文件中包含的功能。 3.2 函数头 在每个函数定义的前面必须有一个函数,说明这个函数的功能,参数和返回 值。 例如: / / 功能:创建新的连接节点 / 参数: / i_fd:连接的 Socket FD / 返回值:成功返回节点指针,否则返回 NULL / 修改记录: / conn_t * conn_create(int i_fd . 3.3 函数内部注释 函数内部重要的变量、必须加以注释,重要的控制结

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论