C代码规范

大小

  • 一个C代码文件必须小于 1000 行(包含注释);
  • 一个C 函数必须小于150行(包含注释);

注释

  • 实现代码与注释比列(6:4)
  • 新建文件,在文件头部需添加注释,如下:
  /* ****************************************************************************
   * Copyright (C) 2005-2009 CAMEO Communications, Inc.
   *
   * ***************************************************************************/
  
  /* ****************************************************************************
   *    Filename              : test.c
   *    LANGUAGE              : C
   *    TARGET ENVIRONMENT    : Broadcom
   * --------------------------------------------------------------------------
   *    HISTORY
   *    1. Version            : 1.0
   *       Date               : 09/17/2009 04:29:01 PM
   *       Author             : Liu Guixue , guixueliu@nettech-global.com
   *       Description        :
   * ***************************************************************************/
  • C函数前要有注释,如下:
/***************************************************************/
/*  Function Name   : test_function_header 
 *  Description     : 

 *  Input(s)        : 
 *  Output(s)       : 
 *  Returns         : TURE/FALSE
 *  Author          :   
 *  Date            : 2009-09-17
 */
/***************************************************************/
int test_function_header()
  • 复杂的处理,如if,while,for等需要加入注释;
  • 注释要用英文;
  • 注释使用/* ... */,不能使用 //;
  • 修改代码,注释标明修改点;

缩进与留白

  • 代码缩进使用Tab键,缩进大小为4个空格;
  • 关键字后跟空格;(if  else 除外);
  • 操作符前后使用空格;

建议

  • 尽量复用已有代码;
  • 代码接口清晰;
  • 返回值尽量用于出错判断;
  • 尽量避免使用goto;

......未完待续

1. 编程规范
2. 接口定义、接口调用 (特别是模块间接口;重点看接口参数、返回值、内部实现是否合理;避免直接调用低效的nmh;接口调用是否便于模块关闭、是否合理)
3. 内存管理(CRU Buffer, Memory Pool, Malloc 等使用是否及时 Free)
4. 使用指针(指针未判断是否为NULL,直接使用;释放指针指向内存,需要赋值指针为NULL)
5. Lock问题(锁是否成对使用,调用模块API进行复杂设置,考虑用Event 代替 Withlock 进行异步调用)
6. 代码效率(例如合理选择数据结构-树、链表和哈希表;尽量不使用超过2层的Loop循环;外层循环采用小的loop次数,内层循环采用大的loop次数)
7. 复杂逻辑(例如一个 if 判断包括4~5个条件,用有意义的宏或子程序封装之简化复杂度; 再如超过4层的代码嵌套难以维护和理解,复杂嵌套逻辑可以考虑用break、return、宏或子程序等简化嵌套层数;复杂一般代表需优化!)
8. 全局变量(全局变量未封装就直接使用,全局变量未分组管理而独立使用,函数内部用全局变量状态 控制执行两大块 不同的代码)
9. 使用常量(代码里不要出现 21001 等常量值,用有意义的宏名称代替)
10. 重复代码(多个函数内部使用相同代码,必须抽取子函数)
11. 代码可读(合理命名,函数和变量命名,表达的意思要准确合理,追求没有注释即可自然阅读)
12. 代码注释(复杂逻辑需注释,代码块意图需注释,不要把代码直接翻译为注释 e.g: if variable equal true13. 代码对其(代码编辑器中,将Tab转变为4个Spaces) 
原文地址:https://www.cnblogs.com/y4247464/p/13323772.html