av手机免费在线观看,国产女人在线视频,国产xxxx免费,捆绑调教一二三区,97影院最新理论片,色之久久综合,国产精品日韩欧美一区二区三区

C語(yǔ)言

VC++6.0環(huán)境下調(diào)試c語(yǔ)言代碼的方法和步驟

時(shí)間:2025-03-29 10:32:39 C語(yǔ)言 我要投稿
  • 相關(guān)推薦

VC++6.0環(huán)境下調(diào)試c語(yǔ)言代碼的方法和步驟

  下文將為大家?guī)?lái)VC++6.0環(huán)境下調(diào)試c語(yǔ)言代碼的方法和步驟,歡迎參考學(xué)習(xí)!更多內(nèi)容請(qǐng)關(guān)注應(yīng)屆畢業(yè)生考試網(wǎng)!

  1.C語(yǔ)言程序四步開(kāi)發(fā)步驟

  (1)編輯?梢杂萌魏我环N編輯軟件將在紙上編寫(xiě)好的C語(yǔ)言程序輸入計(jì)算機(jī),并將C語(yǔ)言源程序文件*.c以純文本文件形式保存在計(jì)算機(jī)的磁盤(pán)上(不能設(shè)置字體、字號(hào)等)。

  (2)編譯。編譯過(guò)程使用C語(yǔ)言編譯程序?qū)⒕庉嫼玫脑闯绦蛭募?ldquo;*.c”,翻譯成二進(jìn)制目標(biāo)代碼文件“*.obj”。編譯程序?qū)υ闯绦蛑鹁錂z查語(yǔ)法錯(cuò)誤發(fā)現(xiàn)錯(cuò)誤后,不僅會(huì)顯示錯(cuò)誤的位置(行號(hào)),還會(huì)告知錯(cuò)誤類(lèi)型信息。我們需要再次回到編輯軟件修改源程序的錯(cuò)誤,然后,再進(jìn)行編譯,直至排除所有語(yǔ)法和語(yǔ)義錯(cuò)誤。

  (3)連接。程序編譯后產(chǎn)生的目標(biāo)文件是可重定位的程序模塊,不能直接運(yùn)行。連接將編譯生成的各個(gè)目標(biāo)程序模塊和系統(tǒng)或第三方提供的庫(kù)函數(shù)“*.lib”連接在一起,生成可以脫離開(kāi)發(fā)環(huán)境、直接在操作系統(tǒng)下運(yùn)行的可執(zhí)行文件“*.exe”。

  (4)運(yùn)行程序。如果經(jīng)過(guò)測(cè)試,運(yùn)行可執(zhí)行文件達(dá)到預(yù)期設(shè)計(jì)目的,這個(gè)C語(yǔ)言程序的開(kāi)發(fā)工作便到此完成了。如果運(yùn)行出錯(cuò),這說(shuō)明程序處理的邏輯存在問(wèn)題,需要再次回到編輯環(huán)境針對(duì)程序出現(xiàn)的邏輯錯(cuò)誤進(jìn)一步檢查、修改源程序,重復(fù)編輯→編譯→連接→運(yùn)行的過(guò)程,直到取得預(yù)期結(jié)果為止。

  2.Visual C++ 6.0 開(kāi)發(fā)環(huán)境介紹

  Visual C++ 6.0(以后簡(jiǎn)稱 VC)是 Microsoft 公司推出的可視化開(kāi)發(fā)環(huán)境Developer Studio 下的一個(gè)組件,為我們提供了一個(gè)集程序創(chuàng)建、編輯、編譯、調(diào)試等諸多工作于一體的集成開(kāi)發(fā)環(huán)境(IDE)。VC 集成開(kāi)發(fā)環(huán)境功能強(qiáng)大,不僅提供了大量的向?qū)?Wizard ),還有完備的幫助功能(MSDN)。所以,初學(xué)者學(xué)習(xí) C 語(yǔ)言編程,并不需要全面了解開(kāi)發(fā)環(huán)境的全部功能。我們可以在安裝 VC時(shí)選擇完全安裝 MSDN,然后在遇到問(wèn)題時(shí)再去查閱 MSDN 中的相關(guān)說(shuō)明。 通過(guò)“開(kāi)始”菜單或桌面快捷方式啟動(dòng) Visual C++進(jìn)入集成開(kāi)發(fā)環(huán)境,如圖 1-1 所示。

  圖1-1 Visual C++界面

  跟大多數(shù)的 Windows 應(yīng)用程序一樣,Visual C++最上面是菜單,然后是工具欄,中央是工作區(qū)(左側(cè)窗口是項(xiàng)目工作區(qū),C 程序員可以在 ClassView 頁(yè)的Globals 全局選項(xiàng)里查看到正在開(kāi)發(fā)的全局變量和全局函數(shù),右側(cè)窗口是編輯窗口,可以同時(shí)對(duì)多個(gè)文擋進(jìn)行編輯)。最下面狀態(tài)欄上面的窗口是輸出窗口,主要用于顯示編譯、連接信息和錯(cuò)誤提示,我們可以雙擊錯(cuò)誤提示行,VC 會(huì)在編輯窗口內(nèi)打開(kāi)出錯(cuò)代碼所在的源程序文件,并將光標(biāo)快速定位到出錯(cuò)行上。   在編輯窗口內(nèi)輸入、編輯程序源代碼時(shí),源代碼會(huì)顯示"語(yǔ)法著色"。在缺省情況下,代碼為黑色,夾以綠色的注 釋和藍(lán)色的關(guān)鍵字(指 VC 所保留的 public、private、new 和 int 等等)。我們還可以通過(guò) Tools 菜單下的 Options 對(duì)話框中的 Format 選 項(xiàng)卡進(jìn)一步設(shè)置指定顏色。

  2.1 項(xiàng)目

  開(kāi)發(fā)一個(gè)應(yīng)用程序,往往會(huì)有很多源程序文件、菜單、圖標(biāo)、圖片等資源,VC 通過(guò)“項(xiàng)目”管理上述資源。所以,在開(kāi)始開(kāi)發(fā) C 程序時(shí),我們就要在一個(gè)指定文件夾內(nèi)創(chuàng)建一個(gè)以.DSW 為擴(kuò)展名的項(xiàng)目工作區(qū)文件,包含項(xiàng)目中所有文件的名稱、 文件所在目錄、編譯器和連接器的選項(xiàng)以及項(xiàng)目工作的其他信息;此外還有以.DSP 為擴(kuò)展名的項(xiàng)目記錄文件,以.OPT 為擴(kuò)展名的工作區(qū)選項(xiàng)文件(包含 Developer Studio 的所有個(gè)人設(shè)置 - 包括顏色、字體、工具欄、哪個(gè)文件被打開(kāi)以及 MDI 窗口如何被定位和最新調(diào)試中的斷點(diǎn))等。在打開(kāi)項(xiàng)目工作區(qū)文件時(shí)其他文件隨即會(huì)自動(dòng)打開(kāi)。在此文件夾下還會(huì)創(chuàng)建 Res(資源)、Debug(調(diào)試)、Release(發(fā)行)等子文件夾。

  2.2編輯

  在編輯窗口打開(kāi)、瀏覽文件、輸入、修改、復(fù)制、剪切、粘貼、查找、替換、撤銷(xiāo)等操作,可以通過(guò)菜單完成,也可以通過(guò)工具欄按鈕完成,這些與 Word 之類(lèi)的 windows 編輯器用法完全相同,這里就不再重復(fù)敘述了。

  2.3輔助

  VC 不僅提供了“語(yǔ)法著色”幫助我們閱讀程序,還可以通過(guò)一些快捷鍵檢查常見(jiàn)的括號(hào)不匹配錯(cuò)誤。MSDN 也可以在編輯過(guò)程中提示存在的變量名、函數(shù)名。很多程序員借助類(lèi)似 Visual Assist X 的工具輔助開(kāi)發(fā),減少程序出錯(cuò)的可能性。

  3.開(kāi)發(fā) C 程序

  3.1開(kāi)發(fā)單個(gè) C 語(yǔ)言程序

  1. 創(chuàng)建一個(gè)工作文件夾。

  由于開(kāi)發(fā)過(guò)程會(huì)產(chǎn)生一系列文件,建議每開(kāi)發(fā)一個(gè)新的 C 程序都創(chuàng)建一個(gè)工作文件夾。還可以將所有工作文件夾集中到一起,如E:\LXH\EX01-01 、E:\LXH\EX03-02 等。

  2. 啟動(dòng) Visual C++。

  3. 新建一個(gè) C 語(yǔ)言源程序。

  選擇菜單:File 下的 New 菜單項(xiàng),出現(xiàn)如圖 1-2 所示 new(新建)對(duì)話框。

  圖1-2 選擇菜單File下的New菜單項(xiàng)

  選擇 Files 標(biāo)簽下的 C++ Source File 在“E:\LXH\EG01-01”文件夾中創(chuàng)建C 程序:eg01-01.c,如圖 1-3 所示。

  圖1-3 Files標(biāo)簽

  4. 輸入、編輯源程序。

  注意不要輸入中文標(biāo)點(diǎn)符號(hào),要及時(shí)按 Ctrl+S 保存文件,如圖 1-4 所示。

  圖1-4 輸入源程序

  5. 編譯、連接。

  點(diǎn)擊“Build MiniBar”工具欄上的“Build”按鈕進(jìn)行編譯、連接。也可以選擇菜單 Build 下的 Build (F7) 菜單項(xiàng)或 Rebuild All 菜單項(xiàng)。更簡(jiǎn)捷的方法是直接按 F7 功能鍵。 Visual C++將提示創(chuàng)建默認(rèn)工作區(qū),如圖 1-5 所示。

  圖1-5 創(chuàng)建默認(rèn)工作區(qū)

  點(diǎn)擊“是”按鈕。 如果編譯完全成功,會(huì)顯示 "0 error(s), 0 warning(s)"。 如果出現(xiàn)語(yǔ)法錯(cuò)誤,則要返回 4 修改源程序。然后,再進(jìn)行編譯,直至排除所有錯(cuò)誤。

  6. 運(yùn)行

  點(diǎn)擊“Build MiniBar”工具欄上的“Execute Program”按鈕運(yùn)行程序。也可以選擇菜單 Build 下的 Execute eg01-01.exe 菜單項(xiàng)。更簡(jiǎn)捷的方法是直接按功能鍵 Ctrl+F5 運(yùn)行程序。 若運(yùn)行結(jié)果正確,則 C 語(yǔ)言程序的開(kāi)發(fā)工作到此完成。否則,要針對(duì)程序出現(xiàn)的邏輯錯(cuò)誤返回 4 修改源程序,重復(fù)編譯—連接—運(yùn)行的過(guò)程,直到取得預(yù)期結(jié)果為止。

  7. 關(guān)閉

  如果不退出 Visual C++,接著開(kāi)發(fā)下一個(gè) C 程序,需要先選擇菜單 File 下的 close workspace 菜單項(xiàng)關(guān)閉當(dāng)前工作區(qū),然后再按照 1-7 步驟開(kāi)發(fā)下一個(gè) C程序

  3.2添加多個(gè) C 語(yǔ)言源程序

  在用 C 語(yǔ)言開(kāi)發(fā)應(yīng)用程序時(shí),往往會(huì)使用多個(gè) C 語(yǔ)言源程序。

  現(xiàn)有 C 語(yǔ)言源程序文件“sayhello.c”:

  #include

  void sayhello(void)

  {

  printf("hello\n");

  }

  將其添加到“eg01-01.c”的步驟如下: 首先打開(kāi)“eg01-01.dsw”,點(diǎn)擊項(xiàng)目工作區(qū) ClassView 頁(yè)的 Globals 選項(xiàng),選擇菜單 Project 下的“Add To Project”菜單項(xiàng)的“Files……”

  圖1-6 添加多個(gè)源程序文件

  然后在“Insert Files into Project”對(duì)話框中選取“sayhello.c”:

  圖1-7 選擇欲添加的源程序文件

  再在 main()函數(shù)中添加子函數(shù)說(shuō)明和調(diào)用:

  圖1-8 添加子函數(shù)說(shuō)明和調(diào)用

  程序運(yùn)行結(jié)果如圖 1-9 所示:

  圖1-9 程序運(yùn)行結(jié)果

  4.調(diào)試 C 程序

  初學(xué) C 語(yǔ)言程序設(shè)計(jì),往往一看到自己編的程序出現(xiàn)錯(cuò)誤就不知所措了。有些同學(xué)上機(jī)時(shí),只要程序能夠順利運(yùn)行,就認(rèn)為大功告成,根本沒(méi)想到程序還存在某些隱患。要想不犯或少犯錯(cuò)誤,就需要了解 C 語(yǔ)言程序設(shè)計(jì)的錯(cuò)誤類(lèi)型和糾正方法。 C 語(yǔ)言程序設(shè)計(jì)的錯(cuò)誤可分為語(yǔ)法錯(cuò)誤、連接錯(cuò)誤、邏輯錯(cuò)誤和運(yùn)行錯(cuò)誤。

  語(yǔ)法錯(cuò)誤:在編寫(xiě)程序時(shí)違反了 C 語(yǔ)言的語(yǔ)法規(guī)定。語(yǔ)法不正確、關(guān)鍵詞拼錯(cuò)、標(biāo)點(diǎn)漏寫(xiě)、數(shù)據(jù)運(yùn)算類(lèi)型不匹配、括號(hào)不配對(duì)等都屬于語(yǔ)法錯(cuò)誤,在進(jìn)入程序編譯階段,編譯系統(tǒng)會(huì)給出出錯(cuò)行和相應(yīng)“出錯(cuò)信息”。我們可以雙擊錯(cuò)誤提示行,將光標(biāo)快速定位到出錯(cuò)代碼所在的出錯(cuò)行上。根據(jù)錯(cuò)誤提示修改源程序,排除錯(cuò)誤。

  連接錯(cuò)誤:如果使用了錯(cuò)誤的函數(shù)調(diào)用,比如書(shū)寫(xiě)了錯(cuò)誤的函數(shù)名或不存在的函數(shù)名,編譯系統(tǒng)在對(duì)其進(jìn)行連接時(shí)便會(huì)發(fā)現(xiàn)這一錯(cuò)誤。糾正方法同 1。

  邏輯錯(cuò)誤:雖然程序不存在上述兩種錯(cuò)誤,但程序運(yùn)行結(jié)果就是與預(yù)期效果不符。 邏輯錯(cuò)誤往往是因?yàn)槌绦虿捎玫乃惴ㄓ袉?wèn)題,或編寫(xiě)的程序邏輯與算法不完全吻合。邏輯錯(cuò)誤比語(yǔ)法錯(cuò)誤更難排除,需要程序員對(duì)程序逐步調(diào)試,檢測(cè)循環(huán)、分支調(diào)用是否正確,變量值是否按照預(yù)期產(chǎn)生變化。

  運(yùn)行錯(cuò)誤:程序不存在上述錯(cuò)誤,但運(yùn)行結(jié)果時(shí)對(duì)時(shí)錯(cuò)。 運(yùn)行錯(cuò)誤往往是由于程序的容錯(cuò)性不高,可能在設(shè)計(jì)時(shí)僅考慮了一部分?jǐn)?shù)據(jù)的情況,對(duì)于其他數(shù)據(jù)就不能適用了。例如打開(kāi)文件時(shí)沒(méi)有檢測(cè)打開(kāi)是否成功就開(kāi)始對(duì)文件進(jìn)行讀寫(xiě),結(jié)果程序運(yùn)行時(shí),如果文件能夠順利打開(kāi),程序運(yùn)行正確,反之則程序運(yùn)行出錯(cuò)。要避免這種類(lèi)型的錯(cuò)誤,需要對(duì)程序反復(fù)測(cè)試,完備算法,使程序能夠適應(yīng)各種情況的數(shù)據(jù)。

  為了方便程序員排除程序中的邏輯錯(cuò)誤,VC 提供了強(qiáng)大的調(diào)試功能。每當(dāng)我們創(chuàng)建一個(gè)新的 VC 工程項(xiàng)目時(shí),默認(rèn)狀態(tài)就是 Debug(調(diào)試)版本。調(diào)試版本會(huì)執(zhí)行編譯命令_D_DEBUG,將頭文件的調(diào)試語(yǔ)句 ifdef 分支代碼添加到可執(zhí)行文件中;同時(shí)加入的調(diào)試信息可以讓開(kāi)發(fā)人員觀察變量,單步執(zhí)行程序。由于調(diào)試版本包含了大量信息,所以生成的 Debug 版本可執(zhí)行文件容量會(huì)遠(yuǎn)遠(yuǎn)大于Release(發(fā)行)版本。

  4.1 設(shè)置斷點(diǎn)

  VC 可以在程序中設(shè)置斷點(diǎn),跟蹤程序?qū)嶋H執(zhí)行流程。設(shè)置斷點(diǎn)后,可以按“F5”功能鍵啟動(dòng) Debug 模式,程序會(huì)在斷點(diǎn)處停止。我們可以接著單步執(zhí)行程序,觀察各變量的值如何變化,確認(rèn)程序是否按照設(shè)想的方式運(yùn)行。 設(shè)置斷點(diǎn)的方法是:將光標(biāo)停在要被暫停的那一行,選擇“Build MiniBar”工具欄按鈕“Insert/Remove Breakpoint (F9)”按鈕添加斷點(diǎn),如圖 1-10 所示,斷點(diǎn)所在代碼行的最左邊出現(xiàn)了一個(gè)深紅色的實(shí)心圓點(diǎn),這表示斷點(diǎn)設(shè)置成功。

  圖1-10 設(shè)置斷點(diǎn)

  如果該行已經(jīng)設(shè)置了斷點(diǎn),那么再次按“F9”功能鍵會(huì)清除該斷點(diǎn)。

  4.2調(diào)試命令

  我們也可以在 VC“Build”(組建)菜單下的“Start Debug”(開(kāi)始調(diào)試)中點(diǎn)擊 Go(F5)命令進(jìn)入調(diào)試狀態(tài),Build 菜單自動(dòng)變成 Debug 菜單,提供以下專(zhuān)用的調(diào)試命令:

  Go(F5) 從當(dāng)前語(yǔ)句開(kāi)始運(yùn)行程序,直到程序結(jié)束或斷點(diǎn)處。

  Step Into(F11) 單步執(zhí)行下條語(yǔ)句,并跟蹤遇到的函數(shù)。

  Step Over(F10) 單步執(zhí)行(跳過(guò)所調(diào)用的函數(shù))

  Run to Cursor(Ctrl+F10) 運(yùn)行程序到光標(biāo)所在的代碼行。

  Step out(Shift+F11) 執(zhí)行函數(shù)調(diào)用外的語(yǔ)句,并終止在函數(shù)調(diào)用語(yǔ)句處。

  Stop Debugging(Shift+F5) 停止調(diào)試,返回正常的編輯狀態(tài)

  必須在運(yùn)行程序時(shí)用 Go 命令(而不是 Execute)才能啟動(dòng)調(diào)試模式。在調(diào)試模式下,程序停止在某條語(yǔ)句,該條語(yǔ)句左邊就會(huì)出現(xiàn)一個(gè)黃色的小箭頭。我們隨時(shí)中斷程序、單步執(zhí)行、查看變量、檢查調(diào)用情況。比如,按“F5”功能鍵進(jìn)入調(diào)試模式,程序運(yùn)行到斷點(diǎn)處暫停;不斷按“F10”功能鍵,接著一行一行地執(zhí)行程序,直到程序運(yùn)行結(jié)束。

  需要說(shuō)明的是,如果希望能一句一句地單步調(diào)試程序,在編寫(xiě)程序時(shí)就必須一行只寫(xiě)一條語(yǔ)句。

  4.3察看變量

  單步調(diào)試程序的過(guò)程中,我們可以在下方的Variables (變量)子窗口和Watch(監(jiān)視) 子窗口中動(dòng)態(tài)地察看變量的值,如圖 1-11 所示。Variables 子窗口中自動(dòng)顯示當(dāng)前運(yùn)行上下文中的各個(gè)變量的值變量,而 Watch 子窗口內(nèi)只顯示在此 Watch 子窗口輸入的變量或表達(dá)式的值。隨著程序的逐步運(yùn)行,也可以直接用鼠標(biāo)指向程序中變量查看其值。例如在圖 1-11 中,我們可以清楚地看到,程序已經(jīng)為自動(dòng)型變量 first、second、big 分配了內(nèi)存,但它們的初始值是隨機(jī)的。

  圖1-11 察看變量

  Variables 子窗口有 3 個(gè)選項(xiàng)卡:Auto、Locals 和 This。

  Auto 選項(xiàng)卡: 顯示出當(dāng)前語(yǔ)句和上一條語(yǔ)句使用的變量,它還顯示使用 Step over 或 Step out 命令后函數(shù)的返回值。

  Locals 選項(xiàng)卡:顯示出當(dāng)前函數(shù)使用的局部變量。

  This 選項(xiàng)卡: 顯示出由 This 所指向的對(duì)象(C 語(yǔ)言不用 this)。

  如果變量較多,自動(dòng)顯示的Variables 窗口難以查看時(shí),還可以在右邊的Watch 子窗口中添加想要監(jiān)控的變量名。例如,圖 1-11 在 Watch1 子窗口中添加了變量“first”。我們還可以直接將變量拖動(dòng)到 Watch 子窗口的空白 Name 框中。 添加結(jié)束后,該變量的值會(huì)被顯示出來(lái)。并且隨著單步調(diào)試的進(jìn)行,會(huì)看到變量 first 的值逐漸變化。如果各變量的值按照設(shè)想的方式逐漸變化,程序運(yùn)行結(jié)果無(wú)誤,本次開(kāi)發(fā)就順利結(jié)束了。如果發(fā)現(xiàn)各變量值的變化和設(shè)想的不一致,說(shuō)明程序存在邏輯錯(cuò)誤,那就需要停止調(diào)試,返回編輯窗口,查錯(cuò)并修改程序。

  4.4查看內(nèi)存

  數(shù)組和指針指向了一段連續(xù)的內(nèi)存中的若干個(gè)數(shù)據(jù)。可以使用 memory 功能顯示數(shù)組和指針指向的連續(xù)內(nèi)存中的內(nèi)容。在 Debug 工具條上點(diǎn) memory 按鈕,彈出一個(gè)對(duì)話框,在其中輸入數(shù)組或指針的地址,就可以顯示該地址指向的內(nèi)存的內(nèi)容。如圖 1-12 所示:

  圖1-12 察看內(nèi)存

【VC++6.0環(huán)境下調(diào)試c語(yǔ)言代碼的方法和步驟】相關(guān)文章:

c語(yǔ)言空間換時(shí)間優(yōu)化代碼的方法10-10

C語(yǔ)言精簡(jiǎn)代碼10-03

PHP調(diào)用C代碼的方法11-02

c語(yǔ)言空間換時(shí)間優(yōu)化代碼的技巧方法06-19

C語(yǔ)言的預(yù)處理代碼10-22

C語(yǔ)言軟件開(kāi)發(fā)的基本方法與步驟10-04

C語(yǔ)言快速排序?qū)嵗a10-30

編寫(xiě)單片機(jī)C語(yǔ)言代碼的技巧和經(jīng)驗(yàn)05-27

C語(yǔ)言快速排序算法及代碼06-25