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又是什么情况,让人啼笑皆非。

  • 5
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Dr_Haven

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

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

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

打赏作者

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

抵扣说明:

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

余额充值