C++编程语言的四个调试能力
1、调试标志
合用预处理惩罚#define界说一个或多个调试标志,在代码中把调试部门利用#ifdef和#endif举办打点。当措施最终调试完成后,只需要利用#undef标志,调试代码就会消失。常用的调试标志为DEBUG, 语句序列:
#define DEBUG
#ifdef DEBUG
调试代码
#endif
2、运行期间调试标志
在措施运行期间打开和封锁调试标志。通过配置一个调试bool标志可以实现。这对呼吁行运行的措施更为利便。譬喻下面代码:
#include<iostream>
#include <string>
using namespace std;
bool debug =false;
int main(int argc,char*argv[])
{
for(int i=0;i<argc;i++)
if(string(argv[i])==“--debug=on“)
debug = true;
bool go=true;
while(go)
{
if(debug)
{
调试代码
}else {}
}
}
3、把变量和表达式转换成字符串
但是利用字符串运算符来实现转换输出界说
#define PR(x) cout<<#x”=”<
4、c语言的assert()
该宏在中,,当利用assert时候,给他个参数,即一个判读为真的表达式。预处理惩罚器发生测试该断言的代码,如坚决言不为真,则发出一个错误信息汇报断言是什么以及它失败一会,措施会终止。
#include< assert>using namsapce std;
int main(){ int i=100;
assert(i!=100);
//Fails}当调试完毕后在#include
前插手#define NDEBUG即可消除红发生的代码}