1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
C语言代码风格总结
此文将用到的一些代码风格规范总结起来,作为自己以后写代码时的参考。 大体上和Google全球开源项目C++风格一样, (一)命名风格 业界流行的3种命名风格分别是大小驼峰式、下划线式、匈牙利式,首先排除匈牙利式风格,个人比较犹豫的是小驼峰和下划线式命名,个人比较喜欢下划线式命名,一眼就能看出哪些单词,令人很舒服,像linux这种C语言的终极大项目大部分都是下划线式命名可见一斑。 而大小驼峰看起来很简略,可是实际写代码的时候大部分都是比较长的几个单词组合,导致代码大部分都是一连串的英文字母,可读性比较差。有些人可能觉得可以用单词缩写或者缩减单词这种手段来减少长度,但是《代码整洁之道》说的很清楚,这种人写的代码只能给自己看,而且时间成了自己都要想半天缩写是什么意思! 所以当长度上来以后我每次看的时候都要贴到屏幕上去分解单词,眼睛太累了。然而对于单片机来说,实测发现用下划线比大小驼峰多出很多内存消耗! 目前为了代码可读性暂时选用了下划线式的,毕竟《重构》有句话说的好,代码是写给人的,不是写给机器的!内存不足的时候再说吧! 1 变量命名: 全局变量、普通变量、结构体变量、临时变量统一采用小写单词加下划线式的命名格式,如this_is_name 补充规则: ps:全局变量以后的项目可以参考《华为C语言规范》在前面加前缀 g_xxxx (global) 2 函数命名 函数命名的时候,首先加模块名,然后动词在前面,名词在后面,统一小写单词加下划线。另外根据《代码整洁之道》函数粒度要足够细,一个函数只允许做一件事,参数要足够少,命名要意思表达准确,比如函数从外部拿数据的时候buf地址形参命名为source,函数将数据传递到外面的时候buf地址形参命名为destin。 另: 如果只是返回BOOL型的函数在函数名最前面加前缀is_xxxx,代表只返回TRUE or FALSE。 3 类型命名 结构体、联合体、枚举等命名的时候为了和变量区分开来,统一采用大驼峰式命名法则,结构体变量依旧是下划线式。而枚举内的变量统一全部大写。 4 宏定义命名 数字型的宏定义统一大写,函数型的宏定义和普通函数一样的命名法则。 (二)程序风格 1 内联函数 当函数只有 10 行甚至更少时将其定义为内联函数. 内联函数可以令目标代码更加高效. 对于存取函数以及其它函数体比较短, 性能关键的函数, 鼓励使用内联. 但滥用内联将导致程序变得更慢. 内联可能使目标代码量或增或减, 这取决于内联函数的大小. 内联非常短小的存取函数通常会减少代码大小, 但内联一个相当大的函数将戏剧性的增加代码大小. 现代处理器由于更好的利用了指令缓存, 小巧的代码往往执行更快。 所以,一个较为合理的经验准则是, 不要内联超过 10 行的函数.。 另一个实用的经验准则: 内联那些包含循环或 switch 语句的函数常常是得不偿失 (除非在大多数情况下, 这些循环或 switch 语句从不被执行)。 2 #include 的路径及顺序 使用标准的头文件包含顺序可增强可读性, 避免隐藏依赖。 顺序:所依赖的头文件,C 库,其他库的 .h,本项目内的 .h。 …待补充… |
|
|
|
只有小组成员才能发言,加入小组>>
3323 浏览 9 评论
3000 浏览 16 评论
3498 浏览 1 评论
9073 浏览 16 评论
4093 浏览 18 评论
1198浏览 3评论
614浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
603浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2343浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1902浏览 2评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-31 00:39 , Processed in 1.181897 second(s), Total 78, Slave 59 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号