實干型編程經(jīng)驗大分享
智者的夢再美,也不如愚人實干的步伐!
講一千遍理論,不如寫一行代碼!
任何語言不落實到實際行動上都等于白說,
沒讀過MSDN例子代碼的程序員實在讓人感到可怕!
用C語言1000行源碼能完成的工作千萬不要用C++重寫,
整天把高級技術(shù)放在嘴邊那是一種浮夸!
少年啊,千萬要重視單步調(diào)試和設(shè)置斷點,
用VC調(diào)試時記得按下Alt+5、Alt+6、Alt+7和Alt+8。
對學(xué)習(xí)編程者的忠告:
眼過千遍不如手過一遍!
書看千行不如手敲一行!
手敲千行不如單步一行!
單步源代碼千行不如單步對應(yīng)匯編一行!
VC調(diào)試時按Alt+8、Alt+7、Alt+6和Alt+5,打開匯編窗口、堆棧窗口、內(nèi)存窗口和寄存器窗口看每句C對應(yīng)的匯編、單步執(zhí)行并觀察相應(yīng)堆棧、內(nèi)存和
寄存器變化,這樣過一遍不就啥都明白了嗎。
對VC來說,所謂‘調(diào)試時’就是編譯連接通過以后,按F10或F11鍵單步執(zhí)行一步以后的時候,或者在某行按F9設(shè)了斷點后按F5執(zhí)行停在該斷點處的時
候。
不要迷信書、考題、老師、回帖;
要迷信CPU、編譯器、調(diào)試器、運行結(jié)果。
并請結(jié)合“盲人摸太陽”和“駕船出海時一定只帶一個指南針?!奔右岳斫狻?br />任何理論、權(quán)威、傳說、真理、標(biāo)準(zhǔn)、解釋、想象、知識……都比不上擺在眼前的事實!
有人說一套做一套,你相信他說的還是相信他做的?
其實嚴格來說這個世界上古往今來所有人都是說一套做一套,不是嗎?
不要寫連自己也預(yù)測不了結(jié)果的代碼!
電腦內(nèi)存或文件內(nèi)容只是一個一維二進制字節(jié)數(shù)組及其對應(yīng)的二進制地址;
人腦才將電腦內(nèi)存或文件內(nèi)容中的這個一維二進制字節(jié)數(shù)組及其對應(yīng)的二進制地址的某些部分看成是整數(shù)、有符號數(shù)/無符號數(shù)、浮點數(shù)、復(fù)數(shù)、英文
字母、阿拉伯?dāng)?shù)字、中文/韓文/法文……字符/字符串、匯編指令、函數(shù)、函數(shù)參數(shù)、堆、棧、數(shù)組、指針、數(shù)組指針、指針數(shù)組、數(shù)組的數(shù)組、指針
的指針、二維數(shù)組、字符點陣、字符筆畫的坐標(biāo)、黑白二值圖片、灰度圖片、彩色圖片、錄音、視頻、指紋信息、身份證信息……
進程都退出了,輸入緩沖區(qū)刷不刷新都無關(guān)痛癢。
不要企圖優(yōu)雅的結(jié)束(因為這是不可能辦到的)
而要在爛的不能再爛的攤子上也能重整河山!
這個世界上最大的差別和最遠的距離都存在于“說”和“做”之間。
常立志不如立長志,立長志不如立即干!
崩潰的時候在彈出的對話框按相應(yīng)按鈕進入調(diào)試,按Alt+7鍵查看Call?Stack里面從上到下列出的對應(yīng)從里層到外層的函數(shù)調(diào)用歷史。雙擊某一行可將光標(biāo)定位到此次調(diào)用的源代碼或匯編指令處。
單步類的實例“構(gòu)造”或“復(fù)制”或“作為函數(shù)參數(shù)”或“作為函數(shù)返回值返回”或“參加各種運算”或“退出作用域”的語句對應(yīng)的匯編代碼幾步后,就會來到該類的“構(gòu)造函數(shù)”或“復(fù)制構(gòu)造函數(shù)”或“運算符重載”或“析構(gòu)函數(shù)”對應(yīng)的C/C++源代碼處。
(Turbo?C或Borland?C用Turbo?Debugger調(diào)試,Linux或Unix下用GDB調(diào)試時,看每句C對應(yīng)的匯編并單步執(zhí)行觀察相應(yīng)內(nèi)存和寄存器變化。)
關(guān)于自己是否適合編程的很簡單的測試:
在報紙或雜志上隨便找一段約1000字的文章,在Word中輸入一遍。輸完后再參考下面答案:
A里面有10處以上文字或標(biāo)點錯誤
B里面沒有文字或標(biāo)點錯誤并敢為此跟人打賭
C里面沒有文字或標(biāo)點錯誤并且字體和排版完全與原稿一致
D打印在半透明的紙上和原稿重疊在一起檢查一模一樣,且自我感覺很有成就感
A不適合編程(理由:打字準(zhǔn)確度偏低、粗心大意)
B初級程序員(理由:打字準(zhǔn)確度很高、認真細致、自信、理解全角半角概念)
C高級程序員(理由:在B的基礎(chǔ)上理解字體和排版也是電腦打印的重要因素、但相比D還不夠偏執(zhí)、精益求精、結(jié)果可驗證)
D軟件項目經(jīng)理(理由:能針對項目給出令人信服的細致到極點的需求說明和典型測試用例。用戶幾乎挑不出毛病。專業(yè)?。?br />
代碼功能歸根結(jié)底不是別人幫自己看或講解或注釋出來的;而是被自己靜下心來花足夠長的時間和精力親自動手單步或設(shè)斷點或?qū)?zhí)行到某步獲得的中間結(jié)果顯示或?qū)懙饺罩疚募幸徊揭徊椒治龀鰜淼摹?br />提醒:再?!恋睦蠋熞矡o法代替學(xué)生自己領(lǐng)悟和上廁所!
單步調(diào)試和設(shè)斷點調(diào)試是程序員必須掌握的技能之一。