㈠ c語言調試程序
#define NUM_1 3
#define NUM_2 3
main()
{
void change(int a[NUM_1][NUM_2],int b[NUM_1][NUM_2]);
int arrow1[NUM_1][NUM_2]={1,2,3,4,5,6,7,8,9},arrow2[NUM_1][NUM_2];
change(arrow1,arrow2); /*此處實參應是二維數組的地址*/
}
void change(int a[NUM_1][NUM_2],int b[NUM_1][NUM_2])
{
int i,j;
int (*p)[3],(*q)[3],*p1,*q1;
p=a;q=b;
for(i=0;p<a+3;p++,i++)
for(p1=*p,j=0;p1<*p+3;p1++,j++)
{q1=*(q+j);
*(q1+i)=*p1;
}
for(q=b;q<b+3;q++)
{for(q1=*q;q1<*q+3;q1++)
printf("%d ",*q1);
printf("\n");
}
}樓主有幾處明顯錯誤 :首先要使調用函數改變主函數的值應該使用引用傳遞而不是值傳遞 ;在調用函數的時候 實參應該是二維數組的地址。
㈡ C語言調試步驟
一、在keil中調試c語言程序
1、打開我們的程序,點擊菜單欄右側的start/stopdebug..按鈕,進入調試模式,如下圖。
㈢ C語言怎麼調試
最前面加上 #include<stdio.h>
㈣ C語言 怎麼調試程序
一、在keil中調試c語言程序
1、打開我們的程序,點擊菜單欄右側的start/stopdebug..按鈕,進入調試模式,如下圖。
㈤ C語言初學,跪求VC6.0調試視頻教程
F10調試,不斷按F10進行下一步,F11是進入調用的函數里,可以在下面框里看到變數的變化過程。
㈥ C語言 斷點調試 實例 要有程序(簡單的就可以)
VC6.0
F9——插入刪除斷點,斷點位置為游標所在行
F5——go,開始運行,到斷點會自動停止,沒有斷點,會運行完
F10——向前走一步,不進入函數內部
F11——向前走一步,如果由函數就進入內部
未開始調試的情況下,按F10或者F11,會自動開始調試,滑鼠自動定位到頭部
Shift+F11——如果進入了函數,執行到中間,想跳出來,就按這個
Ctrl+F10——運行到游標,個人覺得這個很好用,覺得哪一行可能會出問題,在這一行前點一下滑鼠,然後按下這倆鍵,就運行到這里了,不用設置斷點。
至於查值,說的是在上述調試運行到某一行的過程中,查看某個變數的值,這個可以通過下方出現的Variable和Watch窗口查看,Variable不能輸入,自動出現相關變數的值,watch窗口,可以自己輸入變數名稱,查看運行到某一步時的變數值。
如果沒有這兩個窗口,可以在菜單欄右側右鍵,勾選variable和watch,就會出現。在VS中按下CTRL+D+W,也會出現watch窗口。
暫時就想起這么多了,有機會再補充吧。
㈦ C語言調試
你用的是不是visual c++ 6.0
如果不是,你可以看譚浩強的c程序設計第二版 第一二章 就詳細講述了怎麼調試
㈧ c語言程序調試
調試程序一般應經過以下幾個步驟:
1先進行人工檢查,即靜態檢查。在寫好一個程序以後,不要匆匆忙忙上機,而應對紙面上的程序進行人工檢查。這一步是十分重要的,它能發現程序設計人員由於疏忽而造成的多數錯誤。而這一步驟往往容易被人忽視。有人總希望把一切推給計算機系統去做,但這樣就會多佔用機器時間,作為一個程序人員應當養成嚴謹的科學作風,每一步都要嚴格把關,不把問題留給後面的程序。
為了更有效地進行人工檢查,所編的程序應注意力求做到以下幾點:應當採用結構化程序方法編程,以增加可讀性;2盡可能多加註釋,以幫助理解每段程序的作用;3在編寫復雜的程序時不要將全部語句都寫在main函數中,而要多利用函數,用一個函數來實現一個單獨的功能。這樣既易於閱讀也便於調試,各函數之間除用參數傳遞數據這一渠道以外,數據間盡量少出現耦合關系,便於分別檢查和處理。
2在人工檢查無誤後,才可以上機調試。通過上機發現錯誤稱動態檢查。在編譯時給出語法錯誤的信息,可以根據提示的信息具體找出程序中出錯之處並改正之。應當注意的是有時提示的出錯並不是真正出錯的行,如果在提示出錯的行上找不到錯誤的話應當到上一行再找。有時提示出錯的類型並非絕對准確,由於出錯的情況繁多各種錯誤互有關聯,因止要善於分析,找出真正的錯誤,而不要只從字面意義上找出錯信息,鑽牛角尖。
如果系統提示的出錯信息多,應當從上到下一一改正。有時顯示出一大片出錯信息往往使人感到問題嚴重,無從下手。其實可能只有一二個錯誤。例如,對使用的變數未定義,編譯時就會對所有含該變數的語句發出出錯信息;有的是少了「}」或多了「}」有的是書寫語句時忘記寫「;」或是全形的「;」了,只要加上一個變數定義,或填加「};」就所有錯誤都消除了。
3在改正語法錯誤後,程序經過連接就得到可執行的目標程序。運行程序,輸入程序所需數據,就可得到運行結果。應當對運行結果作分析。看它是否符合要求。有的初學者看到運行結果就認為沒問題了,不作認真分析,這是危險的。
有時,數據比較復雜,難以立即判斷結果是否正確。可以事先考慮好一批「試驗數據」,輸入這些數據可以得出容易判斷正確與否的結果。可以在計算的輸出結果的程序地方加入一段輸出到串口的程序,利用串口窗口可以方便看到結果的,比模擬的都好和直觀。例如,if語句有兩個分支,有可能在流程經過其中一個分支時結果正確,而經過其它一個分支時結果不對等。必須考慮周全。
事實上,當程序復雜時很難把所有的可能方案全部都試到,選擇典型的情況作試驗即可。
4 運行結果不對,大多屬於邏輯錯誤。對這類錯誤往往需要仔細檢查和分析才能發現。可以採用以下辦法:
1 將程序與流程圖仔細對照,如果流程圖是正確的話,程序寫錯了,是很容易發現的。例如,復合語句忘記寫花括弧,只要一對照流程圖就能很快發現。
2 如果實在找不到錯誤,可以採用「分段檢查」的方法。在程序不同的位置設幾個printf函數語句,輸出有關變數的值,往下檢查。直到找到在哪一段中數據不對為止。這時就已經把錯誤局限在這一段中了。不斷減小「查錯區」,就可能發現錯誤所在。
3 也可以用「條件編譯」命令進行程序調試(在程序調試階段,若干printf函數語句就要進行編譯並執行。當調試完畢,這些語句不要再編譯了,也不再被執行了)。這種方法可以不必一一去printf函數語句,以提高效率。
4 如果在程序中沒有發現問題,就要檢查流程圖有無錯誤,即演算法有無問題,如有則改正之,接著修改程序。
5 有的系統還提供debug(調試)工具,跟蹤流程並給出相應信息,使用更為方便,如KEILC51里的調試運行就很好用的,可以在命令的窗口輸入程序中需要的數據和開關量、中斷、I/O口的電平等來方便完成程序的運行,使用時要先打開Options for Target'Target1'(工程菜單里的目標『TARGET1'屬性)-----點DEBUG----選中左邊use Simulator\load Application at sta\Go till main;按確定後退出到編輯畫面,要先對源程序進行編譯後沒有錯誤才可以按主菜單上的調試按鈕,進行調試的,F10為子程序運行式的單步、F11為單步調試;具體使用可以看本站提供的51單片機應用系統開發實例一書中的Dscope foe Windows一節。可以下載本站上中文版的KIELC51就直觀了。
總之,程序調試是一項細致深入的工作,需要下功夫,動腦子,善於累積經驗。在程序調試過程中往往反映出一個人的水平,經驗和科學態度。希望讀者能給以足夠的重視。上機調試程序的目的決不 是為了「驗證程序的正確」,而是「掌握調試的方法和技術」,不要一直依賴模擬器來解決,要學會自己找問題,這樣慢慢自己就會寫出錯誤較少的實用的程序,站長就沒有模擬器的哦,靠KEILC51里的軟體模擬就解決了。
請採納。
㈨ c語言如何調試
當然有,你下個就是了,有兩個調試C比較好用的東西,一個Cfree,要注冊的,不過,你不注冊也可以用,你不用調試,直接編譯,它的效果是一樣的。
一個是wintc,這兩個東西對初學者特別好用,不像tc界面那麼可怕。
㈩ C語言怎麼調試阿
你是編譯的時候出錯還是執行的時候出錯?
如果是編譯的時候出錯,看它提示你哪行出錯, 雙擊提示就到那行了
如果是執行的時候出錯,你要先設定一個斷點,
你在程序一開始找一行代碼按F9,這樣就設定了一個斷點,
然後按F5執行程序,程序執行到斷點會停下來,然後你只要一步一步的按F10,看代碼執行到哪裡出錯就行了
下面是你可以參考的一些調試按鍵:
F5 開始調試
F9 下斷點
F10 跳步執行
F11 單步執行
Shift+F5 結束調試