1、#ifndef NDEBUG
cout<<"something"<<endl;
#endif
当需要在测试时输出一些信息,以查看程序的执行情况时,使用上面的语句,输出相关信息;待最终打包程序时,在程序的头部添加语句 #define NDEBUG,使上面的语句失效
对于提供定义NDEBUG的命令行选项的编译器,不许添加 #define NDEBUG,只需在最终生成可执行程序时,使用 cc - DNDEBUG main.c 即可。
当然NDEBUG也可以为其它的标识符,但这样只能在最终打包程序时,在程序的头部添加define 语句。
2、预处理器定义了以下四种在调试时很有用的变量
__FILE__
__LINE__
__TIME__
__DATA__
使用方法:
cout<<"文件:"__FILE__<<endl
<<"行:"__LINE__<<endl
<<"时间:"__TIME__<<endl
<<"日期:"__DATA__<<endl;
用err也可以。
3、assert(expr) 语句
如果expr为假,则抛出错误信息,并停止程序执行,若为真,则不做任何操作。
其仅用于检查确实不可能发生的条件,只在程序调试时使用,但不能用来代替运行时的逻辑检查。运行时检查用throw— catch语句。
使用时需添加语句 #include <assert.h>,最好配合#ifndef NDEBUG...#endif 。
4、exit(int)语句
退出程序,并返回一个错误码(即参数)。