#define AT __FILE__ ":" TOSTRING(__LINE__)

深藏阁楼爱情的钟 2022-08-04 12:59 285阅读 0赞

#define AT __FILE__ “:” TOSTRING(__LINE__)

有时候为了增加调试程序信息具体,加上:

  1. #define STRINGIFY(x) #x
  2. #define TOSTRING(x) STRINGIFY(x)
  3. #define AT __FILE__ ":" TOSTRING(__LINE__)

example.c:

  1. #include <stdio.h>
  2. #define STRINGIFY(x) #x
  3. #define TOSTRING(x) STRINGIFY(x)
  4. #define AT __FILE__ ":" TOSTRING(__LINE__)
  5. void error(const char *location, const char *msg)
  6. {
  7. printf("Error at %s: %s\n", location, msg);
  8. }
  9. int main(int , char**)
  10. {
  11. error(AT, "fake error");
  12. return 0;
  13. }

运行结果:

$./example
Error at example.c:12: fake error

发表评论

表情:
评论列表 (有 0 条评论,285人围观)

还没有评论,来说两句吧...

相关阅读