使用C/C++预定义宏进行调试跟踪代码

来源:互联网 发布:linux 修改部分文件名 编辑:程序博客网 时间:2024/05/17 22:23

使用C/C++预定义宏进行调试跟踪代码

概述

​ 编写C/C++代码时,控制台调试/错误输出是比较常用而且主要的代码调试、排错方法。幸好各大编译器都支持一些预定义的宏可以方便我们在编写代码时,获取代码文件路径、名字,代码行号,编译时间等。

​ 这里要说的主要是如下几个:__FILE__, __LINE__, __DATE__, __TIME__, __FUNCTION__.

用途

  • __FILE__: 获取当前代码文件的全名,包括路径;
  • __LINE__: 获取当前代码行数,即使用该宏的行;
  • __DATE__: 获取当前代码文件被编译的日期,年月日;
  • __TIME__: 获取当前代码文件被编译的时间,时分秒;
  • __FUNCTION__: 获取使用该宏的函数名。

使用方式

#define log_err(M, ...) fprintf(stderr, "[ERROR] (%s:%d error: %s) " \    M "\n", __FILE__, __LINE__, error_msg(), ##__VA_ARGS__)#define compile_time() fprintf(stdout, "[INFO] Compiled at %s %s\n", \    __DATE__, __TIME__)#define get_function() fprintf(stdout, "[INFO] Used in %s.\n", __FUNCTION__) 
0 0