C语言代码规范(四)命名规则
一、宏定义全部字母大写,单词间下划线间隔
#define FLASH_PAGE_SIZE 256
#define FLASH_SECTOR_SIZE (4 * 1024)
#define FLASH_BLOCK_SIZE (64 * 1024)
#define FLASH_SIZE (16 * 1024 * 1024)
二、const修饰的常量全部字母大写,单词间下划线间隔
const int MAX_NUM = 100;
三、变量名全部小写,单词间下划线间隔
unsigned char flash_read_buffer[256] = {0};
四、全局变量应添加前缀"g_",局部变量不需要添加。
unsigned char g_flash_read_buffer[256] = {0};
五、函数名首字母大写,单词间下划线间隔。
void Get_Flash_Data(void);
如果涉及到某个模块,应以"模块名_"的格式。
void LED_Init(void);
如果后续涉及到分层,硬件层应添加前缀"HW_",应用层应添加前缀"APP_"。
六、命名就要做到自解释
所有的命名都应该要做到自解释,即只看命名就知道它的作用。
本人所在前某公司糟糕的命名示例:
#define DBVALUE_CMD0 0x00
#define DBVALUE_CMD1 0x01
#define DBVALUE_CMD2 0x02
#define DBVALUE_CMD3 0x03
这命名让人抓狂。DB是什么意思?CMD0~3具体是干什么的?
询问作者才知道,DB是拼音。。。地标。。。
地标值命令0~3的作用是什么?命名让人摸不着头脑。
修改:
#define STOP_STATION 0x00
#define STOP_THEN_TURN_BACK_STATION 0x01
#define STOP_5S_THEN_TURN_BACK_STATION 0x02
#define STOP_5S_THEN_KEEP_FORWARD_STATION 0x03
这样就一目了然,当地标是0x00时,是停止地点;0x01时,是到地点停止后立即转向后方向;0x02时,是到地点停止5S后转向后方向;0x03是到地点停止5S后继续向前。
七、严禁使用拼音命名
代码是写给别人看的。待过的公司都有外国客户,给他们的DemoCode比较规范,不需要技术支持他们自己调通了(相比国内某些大公司的码农在有中文注释和中文数据手册的情况下还需要FAE手把手教写代码,真让人唏嘘)。如果DemoCode里全是拼音,不敢想象。别说是外国人,国人有时候也难猜到拼音是什么意思,比如第六点中的DB是什么意思。
前公司代码示例:
unsigned char SHIBAI[6];Usart4_Send_Array(SHIBAI, 6);Delay_CMD_FLAG[Play_Fail_Flag] = DELAY_CMD_LOCK;
SHIBAI->失败,下面的Fail又是什么情况,让人啼笑皆非。
C语言代码规范(四)命名规则相关推荐
- c语言程序的基本规范是什么,C语言编程规范——3 命名规则
3 命名规则 3.1 命名的基本原则 标识符的命名要清晰.明了,有明确含义,同时使用完整的单词或大家基本可以理解的缩写,避免使人产生误解--尽量采用采用英文单词或全部中文全拼表示 3.2变量名的命名规 ...
- 嵌入式C语言代码规范
C语言代码规范 参考安富莱C语言编码规范 1.文件与目录 1.文件及目录的命名规定可用的字符集是[A-Z:a-z:0-9:._-]. 2.源文件名后缀用小写字母 .c 和.h. 3.文件的命名要准确清 ...
- C语言代码规范(编程规范)
首页 > 编程笔记 > C语言笔记 阅读:7,165 C语言代码规范(编程规范) C语言中文网推出辅导班啦,包括「C语言辅导班.C++辅导班.算法/数据结构辅导班」,全部都是一对一教学:一 ...
- Python代码规范和命名规范
http://www.imooc.com/article/19184?block_id=tuijian_wz#child_5_1 Python代码规范和命名规范 前言 Python 学习之旅,先来看看 ...
- python3编码命名规范_Python代码规范和命名规范
Python代码规范和命名规范 zoerywzhou@163.com 作者:Zhouwan 2018-4-1 Python之父Guido推荐命名规范包括如下几点: 1.文件名.模块名和包名采用小写字母 ...
- Python:代码规范和命名规范
Python:代码规范和命名规范 所有命名规范都要准守这三条: 1.命名只能以字母或者_下划线开头: 2.名字不能包含空格: 3.名字不能与关键字重合.不能将字符l(小写字母l),'O''o'(大小写 ...
- Android各国语言缩写以及各国语言Values文件夹命名规则
Android各国语言缩写 en 英文 en_US 英文 (美国) ar 阿拉伯文 ar_AE 阿拉伯文 (阿拉伯联合酋长国) ar_BH 阿拉伯文 (巴林) ar_DZ 阿拉伯文 (阿尔及 ...
- go语言代码规范详解
本规范旨在为日常Go项目开发提供一个代码的规范指导,方便团队形成一个统一的代码风格,提高代码的可读性,规范性和统一性.本规范将从命名规范,注释规范,代码风格和 Go 语言提供的常用的工具这几个方面做一 ...
- 代码命名,代码里的命名规则:错误的和正确的对比 命名方法总结 “自我描述的源代码”用代码表达出你的思想,让其他人通过代码能明白你的意图。...
http://www.aqee.net/express-names-in-code-bad-vs-clean/ 编程初学者总是把大量的时间用在学习编程语言,语法,技巧和编程工具的使用上.他们认为,如果 ...
- Java软件项目开发命名规范_命名规则
文章目录 一.项目命名/包命名/虚拟目录/资源路径 二.Java 代码命名 三.属性文件 properties 命名 四.xml文件命名 五.jsp文件命名 六.html文件命名 七.js文件命名 八 ...
最新文章
- css3效果: animate实现点点点loading动画效果(一)
- flink入门实战总结
- 在Android Studio进行“简单配置”单元测试(Android Junit)
- photoshop 常见问题与分析
- PHP工程师需要掌握的知识(转载)
- [转载]eXeScope 6.50本地溢出分析
- sublime:查看二进制文件
- 如何插入电子签名_如何在电子文档上签名?可靠电子签名的特征有哪些?
- 计算机网络安全知识讲座新闻稿,我院开展网络安全与信息化建设讲座
- OneNote | OneNote 备份(线上+本地)
- 计算机鼠标不灵活怎么办,鼠标左键不灵敏,教您鼠标左键不灵敏怎么办
- flutter:掌握布局约束Constraint
- ubuntu 16.04下载网易云音乐 在处理时有错误发生:netease-cloud-music解决
- 微信智能机器人助手,基于hook技术,自动聊天机器人
- 微软 Visual Studio 2019 正式发布
- 昆虫繁殖(继续理解递推和递归)
- 行业分析-磁共振造影剂市场现状及未来发展趋势
- 北京双线机房的一些分析
- 东南大学计算机学研招生人数,东南大学2020硕士研究生各专业报录比汇总(实考人数:录取人数)...
- BIOS调整服务器性能模式,如何修改BIOS的设置,让显卡发挥最佳性能?