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