我只是想知道我们是否可以使用一些宏技巧来改变项目中现有的 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/