C语言编程常见规范

简介

参考资料:https://blog.csdn.net/mall_lucy/article/details/60771214

如果你使用大多数国内公司使用的编程规范

遵守以下规则:

1、缩进使用4个空格,不要使用tab

2、独立的程序块之间、变量说明之后必须加空行,如

int tmp;

tmp = MAX_NUM;

3、不要在程序内直接使用数字,应该先将数字进行宏定义后再使用,约定俗成的除外,如

#define MAX_NUM 5

tmp = MAX_NUM

4、所有的大括号开始和大括号结束都另起一行,如

if (!valid_ni(ni))
{
    ... // program code
}

5、每行代码原则上不超过80个字符,长表达式在操作符前换行,如

perm_count_msg.head.len = NO7_TO_STAT_PERM_COUNT_LEN
                    + STAT_SIZE_PER_FRAM * sizeof( _UL );

act_task_table[frame_id * STAT_TASK_CHECK_NUMBER + index].occupied
                    = stat_poi[index].occupied;

6、一行只写一条语句,错误例子如

rect.length = 0; rect.width = 0;

7、if、for、do、while、case、switch、default等语句自占一行,且if、for、do、while等语句的执行语句部分无论多少都要加括号{ }。
示例:如下例子不符合规范。

if (pUserCR == NULL) return;

应如下书写:

if (pUserCR == NULL)
{
    return;
}

8、在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或者前后要加空格,
左括号后面和右括号前面不加空格,逗号、分号只在后面加空格,单目操作福不加空格。如

if (current_time >= MAX_TIME_VALUE)
a = b + c;
a *= 2;
a = b ^ 2;
*p = 'a'; // 内容操作"*"与内容之间
flag = !isEmpty; // 非操作"!"与内容之间
p = &mem; // 地址操作"&" 与内容之间
i++; // "++","--"与内容之间

if、for、while、switch等与后面的括号间应加空格,使if等关键字更为突出、明显

if (a >= b && c > d)

9、头文件要加注释,注释必须列出:版权说明、版本号、生成日期、作者、内容、功能、与其它文件的关系、修改日志等,头文件的注释中还应有函数功能简要说明,如
.h头文件
/*******************************************************************************

  • Copyright ©, 1988-1999, Huawei Tech. Co., Ltd.
  • File name: // 文件名
  • Author: Version: Date: // 作者、版本及完成日期
  • Description: // 用于详细说明此程序文件完成的主要功能
  • Others: // 其它内容的说明
  • Function List: // 主要函数列表,每条记录应包括函数名及功能简要说明
  •  1. ....
    
  • History: // 修改历史记录列表,每条修改记录应包括修改日期、修改者及修改内容简述
 *      1.  Date:
 *          Author:
 *          Modification:
 *      2. ...
 ******************************************************************************/

源文件头部应进行注释,列出:版权说明、版本号、生成日期、作者、模块目的/功能、主要函数及其功能、修改日志等。
.c头文件

/*******************************************************************************
 * Copyright (C), 1988-1999, Huawei Tech. Co., Ltd.
 * FileName: test.cpp
 * Author:  Version :   Date:
 * Description:     // 模块描述
 * Version:         // 版本信息
 * Function List:   // 主要函数及其功能
 *   1. -------
 * History:         // 历史修改记录
 * <author> <time>      <version >  <desc>
 * David    96/10/12    1.0         build this moudle
 ******************************************************************************/

函数头部应进行注释,列出:函数的目的/功能、输入参数、输出参数、返回值、调用关系(函数、表)等。
示例:下面这段函数的注释比较标准,当然,并不局限于此格式,但上述信息建议要包含在内

/*******************************************************************************
 * Function:    // 函数名称
 * Description: // 函数功能、性能等的描述
 * Input:       // 输入参数说明,包括每个参数的作用、取值说明及参数间关系。
 * Output:      // 对输出参数的说明。
 * Return:      // 函数返回值的说明
 * Calls:       // 被本函数调用的函数清单
 * Called By:   // 调用本函数的函数清单
 * Others:      // 其它说明
 ******************************************************************************/

10、尽量不用goto

11、if必须有else分支,即使else分支是空的,switch必须有default分支,即使default分支是空的

12、检查函数所有参数输入的有效性。

13、一个函数的功能尽量单一,保持两页屏幕之内

14、struct 用typedef重定义

15、运算符用括号明确表达式的操作顺序,避免使用默认优先级

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路过的小熊~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值