老鸟惯用的C/C++ 调试技巧

老鸟惯用的C/C++ 调试技巧

编码文章call10242025-05-14 12:20:293A+A-

大家都知道这两种语言属于基础语言,下面介绍下基本的调试方法

调试宏

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,期望您的关注

点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4