原文链接: http://codeshold.me/2017/03/c_programming_specification.html
参加华为软件精英挑战赛,复习了下基本的C语言编程规范,并做了小结!
C语言编程规范
-
头文件
-
函数编程规范
- 圈复杂度小于7:一个函数可以执行的路径条数
- 函数要短小(推荐小于50行, 每行80个)
- 嵌套层数小于5
- 职责单一
- 抽象层单一:同一层的抽象在同一层
- 参数不超过3个
- 避免重复
- 避免重入问题: 锁机制
- 不要返回局部变量
- 语法规范
- 命令、注释、格式、效率、安全
- 效率和可维护性冲突时,往往选择后者
- 安全:通过指针访问内存(优点也是缺点)
- 地址&内存空间:Data(常量区、全局变量区、静态变量区、堆、栈)+Code(代码区)
- 命令、注释、格式、效率、安全
- C语言常见问题
- 堆管理
- 申请粒度不易过细,过细的建议使用栈空间(建议大于8字节)
- 栈管理
- 不要返回栈空间地址,进程间通信不要传递或返回栈变量
- 强制类型转换(用来欺骗编译器)
- 整数溢出
- 字节对齐(取自身长度和对齐长度的最小值)
- 将数据结构设置为与字节无关的(或者添加字节预留符)
- 字节对齐说明
- 堆管理
- 代码:小心取地址符 ,小心, 指针加减(按指针所指向的元素的大小移动),将数组名或字符串名的值即是其第一个元素的地址!
相关
– 《代码简洁之道》
– 《重构》
–
– 代码检视、单元测试、集成测试、系统测试
说明
- 华为软件精英挑战赛,C语言规范视频
- 华为C语言编程规范, pdf下载链接
文章知识点与官方知识档案匹配,可进一步学习相关知识C技能树首页概览113636 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!