#include <stdio.h>
#define STR(x) #x
#define STR2(x) STR(x)
#define LINE_FILE ("Line " STR2(__LINE__) " of file " STR2(__FILE__))
int main(void)
{
const char *str = LINE_FILE;
printf("%s\n", str);
return 0;
}
这是唯一的高清方案,这将使STR(x)的打印实际LINE和FILE ???有没有更简单的方法来完成这项工作?
非常感谢!但是STR2(__LINE__)呢?这是使用定义来打印行号的唯一方法吗? – GaryHull 2011-03-18 21:27:34
@garihull:这是将行号转换为字符串文字的唯一方法,是的。 '__LINE__'是一个整数值,而不是一个字符串。 – 2011-03-18 21:28:48