时光荏苒,岁月悠悠,转眼间,2022年已经过去了。然而坐在窗台,望着窗外,我思索了良久。与往年总结有点不同,这个时间节点有着它的特殊性,不出意外的话,2023年将会有非常多的变化、机遇和挑战。
或许我也需要认真的花一些时间去总结与规划一下了,作为工程师的我们,还是应该要有能力做出一些产品、能扛得起一些事情。毕竟有了底气,才有资格谈条件。
那么,今天还是以技术类文章为主,好好的跟2022道个别吧!下面给大家介绍一下C语言编程十诫,这10条建议是作者Henry Spencer提出来的,我也是在不经意间看到了这10条建议的英文文档《The Ten Commandments for C Programmers》,在此翻译了一下,并做了批注,供大家学习参考
1、你应该经常运行 lint 并仔细研究它的声明,因为它的感知和判断确实经常超过你的判断力。
(尽量能够使用一些静态检测工具,这样通过自动化测试代码能够发现非常多潜在的错误,并且能极大地减轻测试人员的压力,减少软件项目的出错成本,重要的是这些工具的能力可能是我们平常达不到的。)
2、你不能跟随 NULL 指针,因为混乱和疯狂在它的尽头等待着你。
(不要使用空指针NULL,他会使得比较混乱。)
3、你应该将所有函数参数转换为预期的类型,即使它们已经不是那种类型,即使你确信这是不必要的,以免它们在你最不期望的时候对你进行残酷的报复。
(函数传参有时候一些编译器并不要求完全匹配仍然可以编译通过,不过最好是养成传递给函数的实参与形参保持一致,以免出现移植等问题。)
4、如果你的头文件没有声明你的库函数的返回类型,你应该非常小心地自己声明它们,以免严重的伤害降临到你的程序上。
(注意函数声明的返回类型,以免引入bug。)
5、你应该检查所有字符串(实际上是所有数组)的数组边界,因为肯定在你键入的地方,“foo”有一天有人会键入“supercalifragilisticexpialidocious”。
(数组越界一定要注意一下,C语言编程比较容易犯错,特别是初学者,加上一些编程中的防御性设计。)
6、如果一个函数被声明为在遇到困难时返回错误代码,你应该检查那个代码,是的,即使检查是你的代码大小的三倍并且会让你的打字手指疼痛,因为如果你认为“这不可能发生在我身上”,众神一定会惩罚你的傲慢。
(函数异常返回需要认真对待,并且对于异常需要进行相应的处理,比如动态内存的释放等等。)
7、你应该研究你的库,努力不无缘无故地重新发明它们,这样你的代码就可以简短易读,让你的日子愉快而富有成效。
(最好是自己整理一些可移植的库代码,以后直接拿来用提高效率。)
8、即使你不喜欢,你也应该通过使用 One True, Brace Style 让你的同伴清楚你的程序的目的和结构,因为你的创造力更好地用于解决问题,而不是创造美丽的新障碍来理解。
(代码的结构和风格,比较建议大家遵循 One True, Brace Style,通常也叫(1TBS),以免由于风格和代码结构混乱引入一些问题。)
9、你的外部标识符在前六个字符中应该是独一无二的,尽管这种严厉的纪律会让一些人感到厌烦,而且它的必要性在你面前似乎永无止境地延伸,以免在你希望让程序在旧系统上运行的那个决定性的日子里撕破你的头发并发疯。
(代码的结构和风格,比较建议大家遵循 One True, Brace Style,通常也叫(1TBS),以免由于风格和代码结构带来一些混乱。)
10、你应摒弃、放弃声称“整个世界都是虚无缥缈”的邪恶异端,并与坚持这种野蛮信仰的愚昧异教徒没有任何往来,你写程序的日子可能会很长,即使你当前机器的日子很短。
(玩嵌入式软件,还是要理性一点、唯物主义一点;不要认为解释不了的现象、处理不好的bug就是“玄学”。当然了,我也相信很多朋友只是开个玩笑。)
END
来源:最后一个bug
→点关注,不迷路←