我有以下一组宏(我从如何在字符串中使用编译时间常数 __LINE__的第一个答案中得到)定义了一个宏“LOCATION_PREFIX”,我可以用它来“捕获”一行代码的位置(将传递给将执行日志记录的其他函数)。
#define STRINGIZE(f,l) STRINGIZE2(f) "(" STRINGIZE2(l)"):"
#define STRINGIZE2(x) #x
#define LOCATION_PREFIX STRINGIZE(__FILE__, __LINE__)
int main(){
printf("%s here\n", LOCATION_PREFIX);
printf("%s over here\n", LOCATION_PREFIX);
return 1;
}
输出:
“t.cpp”(8):这里
“t.cpp”(9):这里
我希望输出为:
t.cpp(8):这里
t.cpp(9):这里
任何帮助是极大的赞赏 !