2022年最后一篇推文 | C语言编程十诫

本文介绍了C编程的十项重要原则,由Henry Spencer提出,包括使用lint工具检查代码、避免空指针、确保函数参数类型匹配、检查返回错误代码等,旨在提升代码质量和可维护性。此外,还强调了遵循统一代码风格、注意数组边界、利用现有库、避免过度创新以及正确处理异常的重要性。
摘要由CSDN通过智能技术生成

aaaff81095999b78d278b522b4670a6e.gif

正文


大家好,我是bug菌~

2022年最后一篇推文原本选择一篇年终总结会比较合适,然而坐在窗台,望着窗外思索了良久,与往年总结有点不同,这个时间节点有着他的特殊性,不出意外,明年会有非常多的变化、机遇和挑战。

或许bug也需要认真的花一些时间去总结与规划一下,但到作为工程师的我们总的还是要有能力做出一些产品,能扛得下一些事,有了底气才有资格谈条件。

那么今天还是以技术类文章为主,好好的跟2022道个别吧,跟大家介绍一下C编程十诫,这10条建议是作者Henry Spencer提出来的,bug菌也是在不经意间看到了这10条建议的英文文档《The Ten Commandments for C Programmers》,今天翻译了一下,并做了批注,供大家学习参考:

1、你应该经常运行 lint 并仔细研究它的声明,因为它的感知和判断确实经常超过你的判断力。

(bug菌:尽量能够使用一些静态检测工具,这样通过自动化测试代码能够发现非常多潜在的错误,并且能极大地减轻测试人员的压力,减少软件项目的出错成本,重要的是这些工具的能力可能是我们平常达不到的。)

2、你不能跟随 NULL 指针,因为混乱和疯狂在它的尽头等待着你。

(bug菌:不要使用空指针NULL,他会使得比较混乱。)

3、你应该将所有函数参数转换为预期的类型,即使它们已经不是那种类型,即使你确信这是不必要的,以免它们在你最不期望的时候对你进行残酷的报复。

(bug菌:函数传参有时候一些编译器并不要求完全匹配仍然可以编译通过,不过最好是养成传递给函数的实参与形参保持一致,以免出现移植等问题。)

4、如果你的头文件没有声明你的库函数的返回类型,你应该非常小心地自己声明它们,以免严重的伤害降临到你的程序上。

(bug菌:注意函数声明的返回类型,以免引入bug。)

5、你应该检查所有字符串(实际上是所有数组)的数组边界,因为肯定在你键入的地方,“foo”有一天有人会键入“supercalifragilisticexpialidocious”。

(bug菌:数组越界一定要注意一下,C语言编程比较容易犯错,特别是初学者,加上一些编程中的防御性设计。)

6、如果一个函数被声明为在遇到困难时返回错误代码,你应该检查那个代码,是的,即使检查是你的代码大小的三倍并且会让你的打字手指疼痛,因为如果你认为“这不可能发生在我身上”,众神一定会惩罚你的傲慢。

(bug菌:函数异常返回需要认真对待,并且对于异常需要进行相应的处理,比如动态内存的释放等等。)

7、你应该研究你的库,努力不无缘无故地重新发明它们,这样你的代码就可以简短易读,让你的日子愉快而富有成效。

(bug菌:最好是自己整理一些可移植的库代码,以后直接拿来用提高效率。)

8、即使你不喜欢,你也应该通过使用 One True, Brace Style 让你的同伴清楚你的程序的目的和结构,因为你的创造力更好地用于解决问题,而不是创造美丽的新障碍来理解。

(bug菌:代码的结构和风格比较建议大家遵循 One True, Brace Style,通常也叫(1TBS),以免由于风格和代码结构混乱引入一些问题。)

9、你的外部标识符在前六个字符中应该是独一无二的,尽管这种严厉的纪律会让一些人感到厌烦,而且它的必要性在你面前似乎永无止境地延伸,以免在你希望让你的程序在旧系统上运行的那个决定性的日子里撕破你的头发并发疯。

(bug菌:代码的结构和风格,比较建议大家遵循 One True, Brace Style,通常也叫(1TBS),以免由于风格和代码结构带来一些混乱。)

10、你应摒弃、放弃声称“整个世界都是虚无缥缈”的邪恶异端,并与坚持这种野蛮信仰的愚昧异教徒没有任何往来,你写程序的日子可能会很长,即使你当前机器的日子很短。

(bug菌:玩嵌入式软件还是要理性一点、唯物主义一点,不要认为解释不了的现象,处理不好的bug就是"玄学",当然了,我也相信很多朋友只是开个玩笑。

2023年听起来挺浪漫的,感谢你的陪伴,保持热爱,一起奔赴下一场山海吧~

最后

      好了,今年就跟大家分享这么多了,如果你觉得有所收获,一定记得点个~

最后一个bug,bug菌唯一创作平台~

ca94a85c8daaf2f8092cb898aa196a74.jpeg

推荐专辑  点击蓝色字体即可跳转

☞  MCU进阶专辑 39a23842817181b38762eb75add30a27.gif

☞  嵌入式C语言进阶专辑 8ed06eb8c4e99b0daf9e592e4b12000e.gif

☞  “bug说”专辑 934a8c896fd78d090c37d03f64a6c627.gif

☞ 专辑|Linux应用程序编程大全

☞ 专辑|学点网络知识

☞ 专辑|手撕C语言

☞ 专辑|手撕C++语言

☞ 专辑|经验分享

☞ 专辑|电能控制技术

☞ 专辑 | 从单片机到Linux

d91d1a2dba1cd4cfa2dc1b1e788f50fe.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值