編程技能:調試01,調試介紹

專欄導航

本節文章分別屬于《Win32 學習筆記》和《MFC 學習筆記》兩個專欄,故劃分為兩個專欄導航。讀者可以自行選擇前往哪個專欄。

(一)WIn32 專欄導航

上一篇:編程基礎:位運算07,右移

回到目錄

下一篇:無

(二)MFC 專欄導航

上一篇:編程基礎:位運算07,右移

回到目錄

下一篇:無

本節前言

在上一節,我們講解了位運算的右移運算。結束了右移運算的講解以后,整個的位運算的知識,也就告一段落了。

從本節開始,我們來講解調試。

調試,大概是在進入正式的 Win32 與 MFC 章節之前,我們所講解的最后一部分的鋪墊知識了。希望大家能夠將調試的知識給學好。

一.? ? 調試介紹

調試是什么?

調試可以讓程序每次執行一條指令,執行完了以后就停下來。調試也可以連續執行程序指令,直到某條指令將要執行而尚未執行的時候便停下來。

調試可以幫助程序員了解程序的運行情況,排查程序中的邏輯錯誤。

關于程序中的錯誤,可以分為兩種,一種是語法錯誤,另一種是邏輯錯誤。語法錯誤,這個,編譯器或者集成開發環境會幫助我們檢查。對于語法錯誤,發現了以后,我們可以根據編譯器的錯誤提示,找到相應的錯誤語法,修改了語法錯誤,重新編譯,編譯通過了以后,就可以運行程序了。

而另一種錯誤類型,邏輯錯誤,它是說,語法上并沒有錯誤,但是呢,程序的邏輯上是有錯誤的。

(一)排查邏輯錯誤

我們來看一看下面的代碼。

int i;for (i = 0; i < 10; i++)
{if (i = 6){printf("此刻,i 的值為 6\n");}else;
}

在【if (i = 6)】這一行代碼里,假定,我們的本意是想要在 i 等于 6 的時候,打印輸出一行提示信息。這樣一來, if 語句中,寫的應該是【if (i == 6)】,等號應該是兩個,而不是一個。然而,如果寫代碼的時候,我們因為粗心,錯誤地將兩個等號寫成了一個等號,那么,就會出現邏輯錯誤了。

出現了這樣的邏輯錯誤以后,代碼并未按照我們的設想去執行,而是按照另外的邏輯去執行了。

對于這樣的邏輯錯誤,想要排查并且解決它,我們就需要用調試來予以解決了。

(二)了解程序的運行情況

調試還可以幫助我們了解程序的運行情況。

比如說,可以幫助我們了解,程序在執行完了某一條語句之后,各個局部變量和全局變量的值的變化情況。

對于某些個不太容易理解的程序代碼,如果我們想要了解其執行邏輯,了解其功能,我們就可以通過調試的方式,來了解它的運行情況。

二.? ? 本專欄涵蓋的調試知識

對于調試,我也不是很擅長。也許,你也并不擅長。

在這里,我設置調試章節,主要是為了,讓學習完了 C/C++ 的學習者,對調試有一個初步的了解。至于說,如何讓自己成為一個代碼調試的高手,那就得靠你自己了。

或許,以后,當我的調試技能更為純熟的時候,我會專門地建立一個專欄,用來講解調試知識。而在本專欄里面,我們所講解的調試知識,僅僅是一些個基礎用法,而且只是調試中的一小部分。

調試知識,大概有這樣的幾個知識點,設置與取消斷點,啟用與禁用斷點,連續運行,逐過程,逐語句,條件斷點。

大概,就是這樣的幾個知識點了。

結束語

在前面的章節里,我在講解進制和位運算的知識的時候,就覺得很不好講。其實,到了調試的部分,也是一樣的,我同樣是覺得不好講。

不過,既然是已經講到這兒了,也只好硬著頭皮講下去了。

大家努力學,我也努力講吧。

專欄導航

本節文章分別屬于《Win32 學習筆記》和《MFC 學習筆記》兩個專欄,故劃分為兩個專欄導航。讀者可以自行選擇前往哪個專欄。

(一)WIn32 專欄導航

上一篇:編程基礎:位運算07,右移

回到目錄

下一篇:無

(二)MFC 專欄導航

上一篇:編程基礎:位運算07,右移

回到目錄

下一篇:無

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/76882.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/76882.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/76882.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

從零開始學A2A二 : A2A 協議的技術架構與實現

A2A 協議的技術架構與實現 學習目標 技術架構掌握 深入理解 A2A 協議的分層架構設計掌握各層次的功能和職責理解協議的工作原理和數據流 實現能力培養 能夠搭建基本的 A2A 服務端掌握客戶端開發方法實現智能體間的有效通信 架構設計理解 理解與 MCP 的本質區別掌握多智能體協…

UE5滾輪控制目標臂長度調整相機距離

UE5通過鼠標滾輪來控制攝像機目標臂長度 , 調整相機距離 看圖就行,不多說,照著連就完事了

python的strip()函數用法; 字符串切片操作

python的strip()函數用法 目錄 python的strip()函數用法代碼整體功能概述代碼詳細解釋1. `answer["output_text"]`2. `.strip()`3. `final_answer = ...`字符串切片操作:answer[start_index + len("Helpful Answer:"):].strip()整體功能概述代碼詳細解釋1…

云服務模式全知道:IaaS、PaaS、SaaS與DaaS深度解析

云服務模式詳解&#xff1a;IaaS、PaaS、SaaS與DaaS 在當今數字化快速發展的時代&#xff0c;云計算已經成為企業和開發者不可或缺的一部分。它提供了靈活的資源和服務&#xff0c;使得用戶可以根據自己的需求選擇最合適的解決方案。本文將詳細介紹四種主要的云服務模式&#…

AIDL 語言簡介

目錄 軟件包類型注釋導入AIDL 的后端AIDL 語言大致上基于 Java 語言。AIDL 文件不僅定義了接口本身,還會定義這個接口中用到的數據類型和常量。 軟件包 每個 AIDL 文件都以一個可選軟件包開頭,該軟件包與各個后端中的軟件包名稱相對應。軟件包聲明如下所示: package my.pac…

PINN:用深度學習PyTorch求解微分方程

神經網絡技術已在計算機視覺與自然語言處理等多個領域實現了突破性進展。然而在微分方程求解領域&#xff0c;傳統神經網絡因其依賴大規模標記數據集的特性而表現出明顯局限性。物理信息神經網絡(Physics-Informed Neural Networks, PINN)通過將物理定律直接整合到學習過程中&a…

程序化廣告行業(89/89):廣告創意審核的關鍵要點與實踐應用

程序化廣告行業&#xff08;89/89&#xff09;&#xff1a;廣告創意審核的關鍵要點與實踐應用 在程序化廣告這個充滿機遇與挑戰的領域&#xff0c;持續學習和知識共享是我們不斷進步的動力。一直以來&#xff0c;我都希望能和大家一同深入探索這個行業&#xff0c;今天讓我們聚…

【ES6新特性】Proxy進階實戰

&#x1f31f;ES6 Proxy終極指南&#xff1a;從攔截器到響應式框架實現&#x1f525; 一、&#x1f4a1; 為什么Proxy是革命性的&#xff1f;先看痛點場景 1.1 Object.defineProperty的局限 &#x1f62b; // Vue2響應式實現 let data { count: 0 }; Object.defineProperty(…

c++解決動態規劃

一、引言: 在我們學習了算法之后,我們一定遇到過貪心算法。而在貪心算法中就有著這樣一個經典的例子——湊錢。 Eg: 你有面額為10、5、1的紙幣,當你買菜時需要花費26元,請問需要最少的紙幣張數是多少。 當我們用貪心算法去解決這個問題的時候,我們…

Qwen 2.5 VL 多種推理方案

Qwen 2.5 VL 多種推理方案 flyfish 單圖推理 from modelscope import Qwen2_5_VLForConditionalGeneration, AutoTokenizer, AutoProcessor from qwen_vl_utils import process_vision_info import torchmodel_path "/media/model/Qwen/Qwen25-VL-7B-Instruct/"m…

機器視覺檢測Pin針歪斜應用

在現代電子制造業中&#xff0c;Pin針&#xff08;插針&#xff09;是連接器、芯片插座、PCB板等元器件的關鍵部件。如果Pin針歪斜&#xff0c;可能導致接觸不良、短路&#xff0c;甚至整機失效。傳統的人工檢測不僅效率低&#xff0c;還容易疲勞漏檢。 MasterAlign 機器視覺對…

經典算法問題解析:兩數之和與三數之和的Java實現

文章目錄 1. 問題背景2. 兩數之和&#xff08;Two Sum&#xff09;2.1 問題描述2.2 哈希表解法代碼實現關鍵點解析復雜度對比 3. 三數之和&#xff08;3Sum&#xff09;3.1 問題描述3.2 排序雙指針解法代碼實現關鍵點解析復雜度分析 4. 對比總結5. 常見問題解答6. 擴展練習 1. …

1022 Digital Library

1022 Digital Library 分數 30 全屏瀏覽 切換布局 作者 CHEN, Yue 單位 浙江大學 A Digital Library contains millions of books, stored according to their titles, authors, key words of their abstracts, publishers, and published years. Each book is assigned an u…

地理人工智能中位置編碼的綜述:方法與應用

以下是對論文 《A Review of Location Encoding for GeoAI: Methods and Applications》 的大綱和摘要整理&#xff1a; A Review of Location Encoding for GeoAI: Methods and Applications 摘要&#xff08;Summary&#xff09; 本文系統綜述了地理人工智能&#xff08;G…

(C語言)算法復習總結2——分治算法

1. 分治算法的定義 分治算法&#xff08;Divide and Conquer&#xff09;是一種重要的算法設計策略。 “分治” 從字面意義上理解&#xff0c;就是 “分而治之”。 它將一個復雜的問題分解成若干個規模較小、相互獨立且與原問題形式相同的子問題&#xff0c;然后遞歸地解決這…

愛普生FC1610AN5G手機中替代傳統晶振的理想之選

在 5G 技術引領的通信新時代&#xff0c;手機性能面臨前所未有的挑戰與機遇。從高速數據傳輸到多任務高效處理&#xff0c;從長時間續航到緊湊輕薄設計&#xff0c;每一項提升都離不開內部精密組件的協同優化。晶振&#xff0c;作為為手機各系統提供穩定時鐘信號的關鍵元件&…

Android 接口定義語言 (AIDL)

目錄 1. 本地進程調用(同一進程內)2. 遠程進程調用(跨進程)3 `oneway` 關鍵字用于修改遠程調用的行為Android 接口定義語言 (AIDL) 與其他 IDL 類似: 你可以利用它定義客戶端與服務均認可的編程接口,以便二者使用進程間通信 (IPC) 進行相互通信。 在 Android 上,一個進…

關于QT5項目只生成一個CmakeLists.txt文件

編譯器自動檢測明明可以檢測,Kit也沒有報紅 但是最后生成項目只有一個文件 一&#xff1a;檢查cmake版本&#xff0c;我4.1版本cmake一直報錯 cmake3.10可以用 解決之后還是有問題 把環境變量加上去&#xff1a;

uniapp小程序位置授權彈框與隱私協議耦合(合而為一)(只在真機上有用,模擬器會分開彈 )

注意&#xff1a; 只在真機上有用&#xff0c;模擬器會分開彈 效果圖&#xff1a; 模擬器效果圖&#xff08;授權框跟隱私政策會分開彈&#xff0c;先彈隱私政策&#xff0c;同意再彈授權彈框&#xff09;&#xff1a; manifest-template.json配置&#xff08; "__usePr…

[Godot] C#人物移動抖動解決方案

在寫一個2D平臺跳躍的游戲代碼發現&#xff0c;移動的時候會抖動卡頓的厲害&#xff0c;后來研究了一下抖動問題&#xff0c;有了幾種解決方案 1.垂直同步和物理插值問題 這是最常見的可能導致畫面撕裂和抖動的原因&#xff0c;大家可以根據自己的需要調整項目設置&#xff0…