麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > C > 正文

C語言調(diào)試手段:鎖定錯誤的實現(xiàn)方法

2020-02-24 14:27:00
字體:
供稿:網(wǎng)友

在編程過程中,有時我們編寫的程序在發(fā)生邏輯錯誤時不能運行正確的結(jié)果,這就要求我們調(diào)試一些容易出錯的語句,下文是武林技術(shù)頻道小編為大家介紹的C語言調(diào)試手段:鎖定錯誤的實現(xiàn)方法,一起來看看吧!
首先來了解一下文件默認的輸出信息的函數(shù)吧:
文件信息函數(shù):

?

printf("line : %d/n", __LINE__);?????????????????? //當前行數(shù)
printf("filename : %s/n", __FILE__);???????????? //當前文件名
printf("function : %s/n", __FUNCTION__);? //當前函數(shù)
printf("time : %s/n", __TIME__);????????????????? //當前時間
printf ("date : %s/n",? __DATE__);????????????? //當前日期
輸出:
line : 10
filename : test.c
function : main.c
time : 14:13:51
date : Oct 13 2012


理論已足,那就來看看如何鎖定錯誤吧:
一、源文件:

?

?

?


[root@localhost for_test]# cat erroutput.c
#include <stdio.h>
#include <assert.h>
#define _DEBUG(msg...)??? printf("[ %s,%s, %d ]=>",__FILE__, __FUNCTION__, __LINE__);? printf(msg);printf("/r/n")
#define _ERROR(msg...)??? printf("[ error: %s, %d]=>", __FILE__,? __LINE__);printf(msg); printf("/r/n")
#define _ASSERT(exp)????? /
??????????????????????? do {/
??????????????????????????????? if (!(exp)) {/
??????????????????????????????? printf( "[ %s ]? ",#exp);printf("/r/n");/
??????????????????????????????? assert(exp);/
??????????????????????????????? }/
??????????????????????? } while (0)
int main(void)
{
??????? char *p = NULL;
??????? _DEBUG("DEBUG!");
??????? _ERROR("ERROR!");
??????? _ASSERT(NULL != p);
??????? return 0;
}


二、輸出:

?

?

?


[root@localhost for_test]# gcc erroutput.c
[root@localhost for_test]# ./a.out
[ erroutput.c,main, 17 ]=>DEBUG!
[ error: erroutput.c, 18]=>ERROR!
[ NULL != p ]
a.out: erroutput.c:19: main: Assertion `((void *)0) != p' failed.
已放棄


TI處理:

?

?

?


#ifdef DEBUG
??? #define DBG(fmt, args...)? printf("Debug " fmt, ##args)// ##運算符用于把參數(shù)連接到一起。預處理程序把出現(xiàn)在##兩側(cè)的參數(shù)合并成一個符號。
#else
??? #define DBG(fmt, args...)
#endif
#define ERR(fmt, args...)? printf("Error " fmt, ##args)
[root@localhost for_test]# cat debug_err.c
#include <stdio.h>
//#define DEBUG
int main(void)
{
?????? DBG("xxxx/n");
?????? ERR("xxxx/n");
?????? return 0;
}
[root@localhost for_test]# ./a.out
Error xxxx

#ifdef __DEBUG
??? #define DBG(fmt, args...) fprintf(stderr,"Encode Debug: " fmt, ## args)
#else
??? #define DBG(fmt, args...)
#endif
#define ERR(fmt, args...) fprintf(stderr,"Encode Error: " fmt, ## args)

以上就是C語言調(diào)試手段:鎖定錯誤的實現(xiàn)方法,相信這些內(nèi)容對大家都很有用,建議你可以好好收藏我們的專業(yè)的網(wǎng)站js.Vevb.com。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 欧美黄色一区 | 黄色日韩网站 | 91精品国产综合久久青草 | 欧美激情 在线播放 | 欧美日韩高清一区二区三区 | 九九久久视频 | 久久99精品久久久久久园产越南 | 欧美中文字幕一区二区 | 国产精品视频一区二区三区四 | 55夜色66夜色国产精品视频 | 美女很黄很黄免费的 | 成人一级毛片 | 欧美成人午夜一区二区三区 | 日日影视| 午夜天堂在线视频 | 久久91亚洲人成电影网站 | 亚洲最新黄色网址 | 黄色免费影片 | 香蕉成人在线观看 | 在线播放的av网站 | 国产午夜免费福利 | 精品一区二区三区在线观看视频 | 日韩色视频在线观看 | 伦理三区 | 欧美一级特黄aaaaaa在线看首页 | 欧美精品一区二区三区久久久 | 高潮娇喘嗯啊~文字 | 日本aaaa片毛片免费观蜜桃 | 黄色毛片免费视频 | 男女无套免费视频 | 在线成人www免费观看视频 | 国产正在播放 | porno video hd 365hd| hdhdhd79xxxxх| 国产精品一区2区3区 | 久久精品亚洲国产奇米99 | 亚洲午夜天堂吃瓜在线 | 一级做受大片免费视频 | 成人短视频在线观看免费 | 神马福利电影 | 色淫网站免费视频 |