C语言开发过程中有很多需要注意的地方,以下内容摘自《华为C语言编程规范总则》

2-2:文件头部应进行注释,注释必须列出:版权说明、版本号、生成日期、作者、内容、 功能、修改日志等。

示例:下面这段头文件的头注释比较标准,当然,并不局限于此格式,但上述信息建议要包

含在内。

Generated by Foxit PDF Creator © Foxit Software

http://www.foxitsoftware.com For evaluation only.

- 4 -

/*****************************************************************************

Copyright: 1988-1999, Huawei Tech. Co., Ltd.

File name: 文件名

Description: 用于详细说明此程序文件完成的主要功能,与其他模块或函数的接口,输出

值、取值范围、含义及参数间的控制、顺序、独立或依赖等关系

Author: 作者

Version: 版本

Date: 完成日期

History: 修 改 历 史 记 录 列 表 , 每 条 修 改 记 录 应 包 括 修 改 日 期 、 修 改

者及修改内容简述。

*****************************************************************************/

2-3:函数头部应进行注释,列出:函数的目的/功能、输入参数、输出参数、返回值、调用

关系(函数、表)等。

示例:下面这段函数的注释比较标准,当然,并不局限于此格式,但上述信息建议要包含在

内。

/*************************************************

Function: // 函数名称

Description: // 函数功能、性能等的描述

Calls: // 被本函数调用的函数清单

Called By: // 调用本函数的函数清单

Table Accessed: // 被访问的表(此项仅对于牵扯到数据库操作的程序)

Table Updated: // 被修改的表(此项仅对于牵扯到数据库操作的程序)

Input: // 输入参数说明,包括每个参数的作

// 用、取值说明及参数间关系。

Output: // 对输出参数的说明。

Return: // 函数返回值的说明

Others: // 其它说明

*************************************************/

2-9:全局变量要有较详细的注释,包括对其功能、取值范围、哪些函数或过程存取它以及

存取时注意事项等的说明。

示例:

/* The ErrorCode when SCCP translate */

/* Global Title failure, as follows */ // 变量作用、含义

/* 0 - SUCCESS 1 - GT Table error */

/* 2 - GT error Others - no use */ // 变量取值范围

/* only function SCCPTranslate() in */

/* this modual can modify it, and other */

/* module can visit it through call */

/* the function GetGTTransErrorCode() */ // 使用方法

BYTE g_GTTranErrorCode;

2-13:在代码的功能、意图层次上进行注释,提供有用、额外的信息。

说明:注释的目的是解释代码的目的、功能和采用的方法,提供代码以外的信息,帮助读者

理解代码,防止没必要的重复注释信息。

示例:如下注释意义不大。

/* if receive_flag is TRUE */

if (receive_flag)

而如下的注释则给出了额外有用的信息。

/* if mtp receive a message from links */

if (receive_flag)

3-8:用正确的反义词组命名具有互斥意义的变量或相反动作的函数等。

说明:下面是一些在软件中常用的反义词组。

add / remove begin / end create / destroy

insert / delete first / last get / release

increment / decrement put / get

add / delete lock / unlock open / close

min / max old / new start / stop

next / previous source / target show / hide

send / receive source / destination

cut / paste up / down

示例:

int min_sum;

int max_sum;

int add_user( BYTE *user_name );

int delete_user( BYTE *user_name );

6-5:在同一项目组应明确规定对接口函数参数的合法性检查应由函数的调用者负责还是由

接口函数本身负责,缺省是由函数调用者负责。

说明:对于模块间接口函数的参数的合法性检查这一问题,往往有两个极端现象,即:要么

是调用者和被调用者对参数均不作合法性检查,结果就遗漏了合法性检查这一必要的处理过

程,造成问题隐患;要么就是调用者和被调用者均对参数进行合法性检查,这种情况虽不会

造成问题,但产生了冗余代码,降低了效率。

8-15:要时刻注意易混淆的操作符。当编完程序后,应从头至尾检查一遍这些操作符,以防

止拼写错误。

说明:形式相近的操作符最容易引起误用,如 C/C++中的“=”与“==”、“|”与“||”、“&”

与“&&”等,若拼写错了,编译器不一定能够检查出来。

示例:如把“&”写成“&&”,或反之。

9-5:编写代码时要注意随时保存,并定期备份,防止由于断电、硬盘损坏等原因造成代码

丢失。

9-9:使用代码检查工具(如 C 语言用 PC-Lint)对源程序检查。

9-10:使用软件工具(如 LogiSCOPE)进行代码审查。

11-1:用宏定义表达式时,要使用完备的括号。

11-3:使用宏时,不允许参数发生变化。

示例:如下用法可能导致错误。

#define SQUARE( a ) ((a) * (a))

int a = 5;

int b;

b = SQUARE( a++ ); // 结果:a = 7,即执行了两次增 1。

正确的用法是:

b = SQUARE( a );

a++; // 结果:a = 6,即只执行了一次增 1。

links下c语言中for的作用是,C语言开发注意事项相关推荐

  1. C语言中static的作用及C语言中使用静态函数有何好处

    转自:http://www.jb51.net/article/74830.htm 在C语言中,static的作用有三条:一是隐藏功能,二是保持持久性功能,三是默认初始化为0. 在C语言中,static ...

  2. c语言中const的作用面试,C语言const关键字作用

    C语言中const代表着"不可变",基本和常量一样不可修改,但是应用场景不一样. 一.应用在变量 const char a='A'; a='B';  //错误,变量a的值不可以修改 ...

  3. c语言中fopen的作用,c语言中fopen的用法

    在C语言中,fopen也是一个打开文件的函数.在C语言的命令窗口中输入doc fopen或者help fopen就可以获得该函数的帮助信息.下面小编就跟你们详细介绍下c语言中fopen的用法,希望对你 ...

  4. c语言中rand()的作用,c语言中的rand()函数用法

    rand() rand()函数作用:用来产生随机数,但是,rand()的内部实现是用线性同余法实现的,是伪随机数,由于周期较长,因此在一定范围内可以看成是随机的. rand()函数返回:返回一个范围在 ...

  5. php的cookie变量作用,PHP语言中cookie的作用

    PHP语言中cookie的作用 时间:2015-11-9 Cookie的概念最早是由Netscape在1994年提出来的,它是保存在浏览器中的小信息包,更确切地说,Cookie是保存在客户端硬盘里的, ...

  6. 以下关于c语言中static和const,c语言中static const作用

    c语言中static const作用 (2012-06-21 07:51:08) 标签: it 关键字static: 1. 在函数体内,一个被声明为静态的变量在这一个函数被调用的过程中维持其值不变. ...

  7. java中flush函数作用_Java语言中flush()函数作用及使用方法详解

    最近在学习io流,发现每次都会出现flush()函数,查了一下其作用,起作用主要如下 //------–flush()的作用--------– 笼统且错误的回答: 缓冲区中的数据保存直到缓冲区满后才写 ...

  8. c语言中strcmp的作用,c语言中strcmp的用法

    c语言中strcmp的用法的用法你知道吗?下面小编就跟你们详细介绍下c语言中strcmp的用法的用法,希望对你们有用. c语言中strcmp的用法的用法如下: 头文件:#include strcmp( ...

  9. 简述c语言中break的作用,c语言break什么意思?

    break在一些计算机语言中是保留字,其作用大多情况下是终止上一层的循环,以C语言来说,break在switch(开关语句)中在执行一条case后跳出语句的作用. 1. C语言中的break : br ...

最新文章

  1. 恢复linux里被误删除的文件
  2. php 锁的使用场景,抢购秒杀的场景使用锁个人认为不太合理?
  3. 平安保险基于 SPI 机制的 RocketMQ 定制化应用
  4. oracle gets/exec 单位,ORACLE AWR使用基础
  5. Simulink之单管非隔离直流斩波器
  6. PHP收费事件导致用户流失,PHP秒杀系统方案(解决大流量,高并发)
  7. 在网页中嵌入任意字体(特殊字体/自定义字体)的解决方案
  8. c#获取本地ip地址网关子网掩码_这样解释IP地址、子网掩码、网关之间的联系,不会技术也能听懂...
  9. CISCO 路由器的E1模块配置指南
  10. findfont: Font family [‘Times New Roman‘] not found. Falling back to DejaVu Sans.
  11. 包你满意的Git命令大全,快来收藏!
  12. 软件测试之Web测试流程和方法
  13. msfconsole的简单使用
  14. 基于swiper的移动端H5页面,丰富的动画效果
  15. IOS 制作app 预览视频
  16. [竞赛图判定定理]兰道定理(Landau's Theorem)介绍及其一种证明
  17. 还行,OPPO Find X3 Pro评测:卖的是屏幕和这个超广角!
  18. 关于JS调用Adobe Reader ActiveX插件,在web环境下调用本地打印机执行静默打印的实现
  19. java图书销售系统_基于springboot的小型图书销售系统 源码下载
  20. 直驱式永磁同步风力发电系统的仿真模型

热门文章

  1. ashx误删后,未能创建类型
  2. 在ASP.NET中上传图片并生成缩略图
  3. NET平台下Web树形结构程序设计
  4. 如何应对货期延迟(转自索菲外贸笔记)
  5. 向json对象中添加数组
  6. shell变量,管道符,作业控制,shell变量,以及变量配置文件
  7. HTML标记语法总结
  8. 自动打开WINDWOS远程控制的注册表文件
  9. 销售人员26个致命弱点
  10. 用友U9 cloud助力临工重机实现定制化生产