#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