大家好,今天小编关注到一个比较有意思的话题,就是关于c语言屎山的问题,于是小编就整理了2个相关介绍c语言屎山的解答,让我们一起看看吧。
STL主要点那几个技能?
纯粹从算法来说,stl并不太难,例如大家津津乐道的`std::sort`(在大多数实现里)只不过是一个quick sort + heap sort + select sort,按照这个算法手写一个,或者手写的归并排序(这个需要一点技巧),想略快于它都不太难。
stl之所以复杂,我认为主要还是在于它扮演的地位:在屎山一样的c艹代码里扮演一个标准的地位,让大多数c艹使用者都能在自己的应用场景中从中受益,这还是相当不容易的,付出的代价也是相当大的(例如同样屎山一样的代码)。
为什么祖传代码被称为屎山?
这个码农最有心得了,不知道有多少码农被坑过?很多码农都吐槽过这个事情,而且很多码农宁愿推倒重写,也不愿意维护一些老掉牙的祖传代码,轻则伤筋动骨,重则吐血而亡,一夜之间老十岁也是很正常的事情。
不要说公司的祖传代码,就算是你自己写的代码,再过两年回头看看,肯定也是懵逼的,看别人的代码比看自己的代码难过的多,尤其是如果你的前任是一个你认为的***丝,代码风格和你完全不一样,看代码的过程就会是一种煎熬。
对于一些老代码,很多根本没有设计文档,甚至很多连注释都没有,用的都是一些老掉牙的函数,写代码人的思想几乎全靠猜。遇到BUG你根本不敢改,一改什么玩意都来了,圆环套圆环,你想小心翼翼避免出错,结果却发现可落脚之处全是坑,一脚踩一个屎,称之屎山当之无愧。
而且越大的公司,祖传的代码越恶心,一些公司的祖传代码在不断迭代中越来越臭,最终可能到了谁也不愿意碰,谁碰谁死的地步。尤其是一些大公司,过去编程并不规范,野蛮开发模式,那个代码简直惨不忍睹
因为祖传代码代码量巨大,代码没有按照面向对象开发,有很多数据冗余和缓冲区溢出。同时,高复用性代表着高耦合,代码之间各种千丝万缕的联系。后期在优化或者拓展功能模块的时候需要修改的地方就非常多,并且复用性很差,这里哪块都需要重新编写、初始化,传参等等。有点代码甚至牵一发而动全身,改动一处,就疯狂报错。
到此,以上就是小编对于c语言屎山的问题就介绍到这了,希望介绍关于c语言屎山的2点解答对大家有用。