C/C++编译器预定宏使用
来源:互联网 发布:网络学英语 编辑:程序博客网 时间:2024/06/06 12:42
在C/C++编译器中,会有编译器级别的预定义宏,__FILE__,__LINE__,__FUNCTION__,__DATE__,__TIME__等。
下面来一一介绍这几个宏的含义:
__FILE__ 当前文件的文件名,linux下GCC只有文件名,而在windows下GCC会包含完整的路径,可通过编译选项设置为只有文件名;
__LINE__代码当前行号;
__FUNCTION__ 当前行所在的函数名称;
__DATE__ 当前日期;
__TIME__当前时间。
下面介绍这几个宏的用法。
#include <iostream>#include <string>using namespace std;int main(){ cout << "Date:" << __DATE__ << " Time:" << __TIME__ << endl; cout <<"File:" << __FILE__ <<", Line:" << __LINE__ <<", Function:" << __FUNCTION__ << endl; return 0;}在linux下编译后执行结果如下:
Date:Apr 27 2017 Time:13:59:55File:test.cpp, Line:11, Function:main在我们调试程序时,这几个宏对我们的调试很方便。比如我们可以在函数的异常出口处使用这些宏打印信息的方式定位到程序异常的具体文件,函数,代码行。例如:
#define DEBUG#ifdef DEBUG#define DEBUG_ERR_LOG() cout << "Err File:" << __FILE__ << ", Line:" << __LINE__ << ", Function:" << __FUNCTION__ << endl;#else#define DEBUG_ERR_LOG()#endif
这样,我们就可以在想输出异常的地方直接是使用DEBUG_RRR_LOG()来打印这样的信息了。
当然也可以使用这些宏做别的组合打印调试信息。
0 0
- C/C++编译器预定宏使用
- _MSC_VER[Microsoft C/C++编译器版本预定义宏]
- C语言编译器的预定义符号
- C语言编译器的预定义符号
- C预定义宏
- C 预定义宏
- 编译器预定义宏(Pre-defined C/C++ Compiler Macros)
- C/C++怎样通过预定义宏识别编译器名称和版本
- c语言预定义宏
- c/c++预定义宏
- C 预定义的宏
- C标准预定义宏
- c/c++预定义宏
- C常用预定义宏
- C常用预定义宏
- C/C++预定义宏
- C/C++预定义宏
- C标准预定义宏
- linux运维-vsftpd服务
- Linux虚拟网络之tun(二)Raw包转发
- 通过AngularJS实现前端与后台的数据对接——服务(service,$http)
- JUC线程池--线程池架构
- 一个ajax通用函数(xmlhttprequest封装)
- C/C++编译器预定宏使用
- Unity中默认的文件夹以及路径问题
- Windows下mysql忘记root密码的解决方法
- url 传递中文参数乱码问题
- 结构体
- asp.net 使用NPOI实现导出Excel功能
- 敏俊物联MJIOT-AMB-03 RTL8710BN 高性能wifi模块
- 给大家安利一个关于需求分析的免费公开课
- JavaScript 之变量