是否可以通过LINE宏在线报告整个字符串。示例代码:
#include <stdio.h>
#define LOG(lvl) pLog(lvl, __LINE__, __FILE__)
pLog(const char *str, int line, const char *file)
{
printf("Line [%u]: File [%s]", line, file);
}
int main ()
{
LOG("Hello"
"world");
return 0;
}
输出为:第 [13] 行:文件 [macro.c]
现在在一个大型代码库中,我想搜索此文件并打印报告行中存在的字符串“Hello world”(在本例中为 13)
我在想的一种方法是搜索这个文件,首先使用 gcc -E do grep for pLog 生成输出文件并保存它们的字符串,然后在实际代码文件中 grep for LOG 并保存行号与行号匹配结果然后进行索引匹配并打印字符串。
由于字符串可以分布在多行中(如代码中 Hello 位于一行,world 位于另一行),因此也需要注意这一点。
是否有任何其他最佳和快速的方法或 gcc 提供一些选项来将回行和文件转换为实际代码