c - 通过宏修改 printf()s 以包含文件和行号信息

标签 c

我只是想知道我们是否可以使用一些宏技巧来改变项目中现有的 printf() 语句。

/* file.c */
printf ("%s", strerror(errno));

/* After macro processing, this line would become */
printf ("%s %s %d", strerror(errno), __FILE__, __LINE__);

最佳答案

根据我的评论中的警告,您可以使用 variadic macro 来完成:

#define PRINTF_FL(format, ...) \
    printf(format " %s %d", __VA_ARGS__, __FILE__, __LINE__)

关于c - 通过宏修改 printf()s 以包含文件和行号信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15549893/

相关文章:

c - C get 行中的段错误

c - 双指针地址加法问题

c - 段错误问题(C)

c - 如果 if 语句返回相同的内容,C 编译器是否会合并它们?

我们可以在模板源文件中使用 CMake foreach 吗?

c - 打印节点数组

C分配和内存开销

c - 编写蹦床函数

将变量转换为 int vs round() 函数

c - 寻找问题