老鸟惯用的C/C++ 调试技巧
大家都知道这两种语言属于基础语言,下面介绍下基本的调试方法
调试宏
assert()
参数为一个断言为真的表达式,如果断言不为真,则发出一个错误信息告诉断言是什么并且程序终止。
#include<iostream>
amrzs@ubuntu:cc$g++main.cpp
消除宏代码
在#include<cassert>
之前插入#define NDEBUG
或者在编译器命令行中定义ndebug,可以消除宏产生的代码
#include<iostream>
amrzs@ubuntu:cc$g++main.cpp
变量字符串转换宏
把变量和表达式转换为字符串
在一个预处理器的宏中的参数前面使用一个#,预处理器会把这个参数转换成一个字符数组。
#define P(A) cout << #A << ": " << (A) << endl;
当不想调试时,也可以插入一个#ifdef
使得定义的P(A)不起作用。
调试标记:预处理器调试标记 和 运行期调试标记
常用的标记名为DEBUG(不能使用NDEBUG,是C中的保留字)
#defineDEBUG
C/C++还允许在编译器的命令行中使用#define
和#undef
标记,使用可以用一个单独的命令重新编译代码并插入调试信息
修改自简书(Amrzs)
大家如果对编程感兴趣,想了解更多的编程知识,解决编程问题,帮你解决初学遇到的困惑,我们这里有java高手,C++/C高手,windows/Linux高手等,请关注我们的微信公众号:程序员互动联盟或者coder_online,期望您的关注
下一篇:7 C++ 数据类型