1.cè¯è¨ç¨åºä»£ç
2.很多C语言开源软件的码讲源代码很难懂,要快速理解有什么技巧吗?
cè¯è¨ç¨åºä»£ç
Cè¯è¨æºä»£ç ï¼å°±æ¯ä¾æ®Cè¯è¨è§åæååºçç¨åºä»£ç ï¼å¸¸è§çåå¨æ件æ©å±å为.cæ件å.hæ件ï¼åå«å¯¹åºCæºæ件(source file)åC头æ件(header file)ãCè¯è¨æ¯ä¸é¨ç¼ç¨è¯è¨ï¼ç®åç¹è¯´ï¼å°±æ¯ç±äººç±»ä¹¦åæç §ä¸å®è§è书åçå符ï¼éè¿ä¸å®æ段ï¼ç¼è¯é¾æ¥ï¼è½¬æ¢åï¼å¯ä»¥è®©çµèæè å ¶å®çµåè¯çï¼è¯»æï¼ï¼å¹¶æç §å ¶è¦æ±å·¥ä½çè¯è¨ãå¨ææçç¼ç¨è¯è¨ä¸ï¼Cè¯è¨æ¯ç¸å¯¹å¤èèåå§çï¼åæ¶ä¹æ¯å¨åç±»è¯è¨ä¸æ´æ¥è¿ç¡¬ä»¶ï¼æ为é«æçç¼ç¨è¯è¨ã
ç¸å ³å 容ï¼
Cè¯è¨æ¯ä¸é¨é¢åè¿ç¨ç计ç®æºç¼ç¨è¯è¨ï¼ä¸C++ãC#ãJavaçé¢å对象ç¼ç¨è¯è¨ææä¸åãCè¯è¨ç设计ç®æ æ¯æä¾ä¸ç§è½ä»¥ç®æçæ¹å¼ç¼è¯ãå¤çä½çº§åå¨å¨ãä» äº§çå°éçæºå¨ç 以åä¸éè¦ä»»ä½è¿è¡ç¯å¢æ¯æ便è½è¿è¡çç¼ç¨è¯è¨ã
Cè¯è¨æè¿°é®é¢æ¯æ±ç¼è¯è¨è¿ éãå·¥ä½éå°ãå¯è¯»æ§å¥½ãæäºè°è¯ãä¿®æ¹å移æ¤ï¼è代ç è´¨éä¸æ±ç¼è¯è¨ç¸å½ãCè¯è¨ä¸è¬åªæ¯æ±ç¼è¯è¨ä»£ç çæçç®æ ç¨åºæçä½%-%ãå æ¤ï¼Cè¯è¨å¯ä»¥ç¼åç³»ç»è½¯ä»¶ã
å½åé¶æ®µï¼å¨ç¼ç¨é¢åä¸ï¼Cè¯è¨çè¿ç¨é常ä¹å¤ï¼å®å ¼é¡¾äºé«çº§è¯è¨åæ±ç¼è¯è¨çä¼ç¹ï¼ç¸è¾äºå ¶å®ç¼ç¨è¯è¨å ·æè¾å¤§ä¼å¿ã计ç®æºç³»ç»è®¾è®¡ä»¥ååºç¨ç¨åºç¼åæ¯Cè¯è¨åºç¨ç两大é¢åãåæ¶ï¼Cè¯è¨çæ®éè¾å¼ºï¼å¨è®¸å¤è®¡ç®æºæä½ç³»ç»ä¸é½è½å¤å¾å°éç¨ï¼ä¸æçæ¾èã
Cè¯è¨æ¥æç»è¿äºæ¼«é¿åå±åå²çå®æ´çç论ä½ç³»ï¼å¨ç¼ç¨è¯è¨ä¸å ·æ举足轻éçå°ä½ã
很多C语言开源软件的码讲源代码很难懂,要快速理解有什么技巧吗?
阅读代码是码讲一项重要的能力。你觉得技术比你弱的码讲人拿的工资比你高,他有一项很重要的码讲能力就是阅读代码。
开源代码在变量命名上,码讲pygame小游戏源码注释上一定做得比较好了,码讲你所看不懂的码讲地方只有2种可能。
1,码讲编程技巧。码讲这种比较容易弄懂,码讲如果你对编程语言熟悉的码讲话,一步一步展开来就知道作者想表达的码讲意思了。(这个就像小时候学语文的码讲语法,“把”字句改成“被”字句,码讲有杀气童话源码意思没变,写法变了)
2,算法。这个就算你一步一步展开都不一定能看懂,这个要有一定的数学知识,比如向量积,线性回归,传奇游戏程序源码微分方程,卷积等。如果是很专业的产品,还要涉及到物理,化学,电气,概率论等等。内核的驱动源码(这个就像阅读文言文,没学过就看不懂,还可能会理解错误)
所以看不懂代码就只有提升自己的知识水平,没有捷径可走。但你可以针对性的去训练上述2条中的弱项,语言是基础,算法是易语言藏头诗源码核心。
记得我第一份工作是做单片机产品维护,平时工作就是在现有的产品上改改功能代码,增加新功能。那个时候没做过什么产品,虽然也会C语言,但是看别人代码就像看天书一样,主要是技术不到家,还遇到过一些让人吐血的代码,可能是公司得罪了那个工程师,代码里没一个注释,而且变量名全是k,kk,tt这种不好理解的,简直让我想把那个工程师罚站马路中间半个小时,感觉还不如自己重写快一点,后面慢慢的积累了一些经验才发现自己当时看代码的方式和思维不对。一个源码,如果你用通过代码去理解产品功能那你一定会看到心肌梗塞都吃不透,正确的应该是先把产品功能吃透,然后把功能分模块进行分析,如果是我,我会怎么用代码去实现它?最好自己写代码做一遍,在写的过程中你一定会碰到棘手的技术点不知道该怎么去实现它,这个时候最好自己努力思考一下,最后不管你有没想出来,你再去看别人的代码是如何实现的,这样你就能一步步吃透别人的代码,至少程序架构的核心部分知道怎么处理了,剩下的细节实现其实已经无关紧要了,这是一个循环渐进的过程,也是提升自己水平很好的方法,过程越痛苦你的提升就越大。